先看两段代码:
<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。