Javascript中布尔运算符的高级应用

对象检测语句:var W3CDOM = document.getElementsByTagName && document.createElement

为了执行运算符&&,两个对象被解释成为布尔型,你可能认为W3CDOM变成了一个布尔值,但事实不是这样,事实是返回最后一次被求值的表达式的值。如果用alert查看alert(W3CDOM),弹出的提醒框显示的是

function createElement(){

[native code]

}

利用&&和||的怪异特性

大多数浏览器保存事件目标在evt.target中,但IE是evt.srcElement.因此可以用如下办法

var evtTarget=evt.target || evt.srcElement;

如果浏览器兼容W3CDOM,evtTarget就存在,即,它不等于undefined, 并且javascript发现一个表达式值为true,它不再需要继续计算下一个表达式,所以中断了||运算。如果浏览器是IE,evt.Target等于undefined,它被转换为false,因此Javascript继续计算下一个表达式,因为evt.srcElement存在,它的值为true,同样,||不返回true,而是返回最后求值的表达式的值

posted @ 2013-12-17 22:14  nickycookie  阅读(199)  评论(0编辑  收藏  举报