首先检查
first
对象上是否存在 variable
。因为它是true
。表达式通过并分配 "new value"
。该条件将短路,并且无需检查1 > 5
条件。
注意: 如果
first
的值为 undefined
或 false,则检查 1 > 5
表达式。这将导致 false
,因此将分配 "other value"
。
const variable = { first: "test value" }; // variable.first is present
const newVal = (variable?.first || (1 > 5)) ? "new value" : "other value";
// ^ true OR ^ false = ^ true value
console.log(newVal); // "new value"