对象检测语句:var W3CDOM = document.getElementsByTagName && document.createElementjavascript
为了执行运算符&&,两个对象被解释成为布尔型,你可能认为W3CDOM变成了一个布尔值,但事实不是这样,事实是返回最后一次被求值的表达式的值。若是用alert查看alert(W3CDOM),弹出的提醒框显示的是java
function createElement(){浏览器
[native code]code
}对象
利用&&和||的怪异特性事件
大多数浏览器保存事件目标在evt.target中,但IE是evt.srcElement.所以能够用以下办法ip
var evtTarget=evt.target || evt.srcElement;get
若是浏览器兼容W3CDOM,evtTarget就存在,即,它不等于undefined, 而且javascript发现一个表达式值为true,它再也不须要继续计算下一个表达式,因此中断了||运算。若是浏览器是IE,evt.Target等于undefined,它被转换为false,所以Javascript继续计算下一个表达式,由于evt.srcElement存在,它的值为true,一样,||不返回true,而是返回最后求值的表达式的值io