所以我在玩物体,我注意到物体 a = {}
a.b == undefined
是 true
a.b === undefined
也是 true
但是a.b === (undefined || 'c')
是false
有谁知道这种行为的原因是什么?
undefined || 'c'
的计算结果为'c'
,因此a.b === (undefined || 'c')
等效于running a.b === 'c'
,这显然是错误的。
这是有关逻辑运算符的MDN文档,以供参考:https :
//developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Logical_Operators
特别是:
运算符:逻辑或(||)
用法:expr1 || expr2
说明:如果可以将expr1转换为true,则返回expr1;否则返回false。否则,返回expr2。因此,当与布尔值一起使用时,|| 如果任一操作数为true,则返回true;如果两者均为假,则返回false。
对于undefined || 'c'
,undefined
无法将其转换为true,因此'c'
由||
运算符返回。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句