Jan*_*sky 2 javascript ternary-operator conditional-operator
以下陈述是否有任何重大差异:
$value && 'YES' || 'NO';
Run Code Online (Sandbox Code Playgroud)
和
$value ? 'YES' : 'NO';
Run Code Online (Sandbox Code Playgroud)
如果您使用常量编码,就像在代码示例中一样,那么不,没有区别.特别重要的是,你所处位置的常数"YES"是如此真实的价值.但是,当你不知道结果值是什么时,那么是的,它们是不同的.考虑:
var x = a ? b : c;
Run Code Online (Sandbox Code Playgroud)
在该代码中,肯定是如果a是真实的,x将被设置为值的b.如果没有,它将被设置为值c.
现在,另一方面:
var x = a && b || c;
Run Code Online (Sandbox Code Playgroud)
这里,只有当两个值和那个值都是真的时x才会被设置为值.如果是假的,那么评估将转移到另一侧.bab||