先看两段代码:
<script>
var oFalseObject = new Boolean(false);
var bResult = oFalseObject && true;
var cResult = true && oFalseObject;
alert(oFalseObject && true); //output: true
alert(bResult+"~~"+cResult); //output: true~~false
</script>
<script>
var obj={};
alert(obj && true); //output: true
alert(true && obj); //output:[object object]
</script>
这里有疑问,oFalseObject && true 怎么可能是true??? obj 不是boolean类型的怎么可以用&&?
解释:javascript中 ,在Boolean表达式中,如果第一个是对象类型(不管任何对象类型,包括Boolean对象)的都会被自动转换为true。
本文通过两个实例探讨了JavaScript中逻辑与(&&)运算符的工作原理,特别是当操作数包含布尔对象和其他非布尔对象时的行为。解释了为何某些情况下非布尔类型的对象会自动转换为true。
631

被折叠的 条评论
为什么被折叠?



