Javascript中布尔运算符的高级应用
2013-12-17 22:14
162 查看
对象检测语句: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,而是返回最后求值的表达式的值
为了执行运算符&&,两个对象被解释成为布尔型,你可能认为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,而是返回最后求值的表达式的值
相关文章推荐
- Javascript浅谈之引用类型
- 中国天气网城市代码(JSON)获取实现(二)
- js 中局部变量和全局变量输出遇到的问题
- JavaScript之web通信
- java执行javascript
- Json格式化工具 JsonViewer下载
- jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签、struts2 action传值问题
- JavaScript笔记NaN
- 怎么用js代码改变单选框的选中状态
- JavaScript跨域总结与解决办法
- js实现复制到剪贴板功能,兼容所有浏览器
- JS下拉列框 (select) 的增删改查
- 利用javascript中innerhtml实现当页动态生成内容
- JSONSerializer序列化HashSet
- Errors running builder 'JavaScript Validator' on project
- javascript创建XML对象转换为字符串,创建字符串转换为XML对象
- jsp用javascript关于浏览器静止后退,刷新
- 中国天气网城市代码(JSON)获取实现(一)
- Extjs4 combobox静态本地数据实现省市联动
- python运行javascript