Yos*_*Yos 3 javascript boolean-logic ternary-operator
据我所知,在Javascript中伪造的值之后不会执行表达式。例如下面的语句:
const result = undefined && 5;
console.log(result);Run Code Online (Sandbox Code Playgroud)
result 将是不确定的。
然而:
const result = false && false ? 'T' : 'F';
console.log(result);Run Code Online (Sandbox Code Playgroud)
result将等于F。为什么仍然执行三元表达式?
这是因为运算符优先级:&&优先级(6)比? :(4)高,因此
false && false ? 'T' : 'F'
Run Code Online (Sandbox Code Playgroud)
评估为
(false && false) ? 'T' : 'F'
Run Code Online (Sandbox Code Playgroud)
因此,左侧求值false第一个(取第一个false),然后继续条件运算符。
如您所料,如果您在后面加上括号&&,result则将是false:
false && false ? 'T' : 'F'
Run Code Online (Sandbox Code Playgroud)