ES中所述:
如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:
如果一个运算数是对象,另一个是 Boolean 值,返回该对象。
代码:
var a = { name: 'a' };
console.log(true && a); //- Object {name: "a"}
console.log(a && true); //- true
有人可以帮解释下为什么第二个不是输出a吗
1 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
是短路的原因的。他是先左后右的计算值的并且表达式的值等于最后一个值。
如果是false或者0就会直接返回false/2了不会计算右表达式的值
添加回答
举报
0/150
提交
取消