测试代码为:
console.log(true && "abc");//abc
谁能告诉我为什么结果是abc
发布于 2012-07-18 22:32:39
如果左侧的计算结果为false
,则&&
返回左侧,否则返回右侧的大小。
true
不是false
,所以它返回右边,也就是字符串。
> 0 && true // LHS is false, return LHS
0
> 1 && true // LHS is true, return RHS
true
> false && 0 // LHS is false, return LHS
false
> true && false // LHS is true, return RHS
false
发布于 2012-07-18 22:33:05
您可以通过将表达式包装到!!()
中来对其进行某种程度的“修复”
!!(true && 'abc');
https://stackoverflow.com/questions/11543735
复制相似问题