var ie = !-[1,];
这句代码在IE9之前曾被称为世界上最短的IE判定代码。代码虽短但确包含了不少javascript基础知识在里面。在这个例子中代码执行时会先调用数组的toString()方法 ,执行[1,].toString()在IE6,7,8中将会得到“1,”。然后表达式就变为!-“1,”。再尝试把“1,”转换成数值类型得到NaN ,再对NaN取负得到值仍为NaN。最后执行!NaN返回true。下面通过分解这个语句来回顾下代码中所涉及到的javascript知识:
浏览器的数组字面量解析差异
[1,]表示使用javascript的数组字面量定义了一个数组。 在IE6,7,8中数组有两个元素,数组中的值分别为1,undefined。在标准的浏览器中会忽略第一个元素后的undefined,数组只包含一个元素1。
数组的toString()方法
调用数组对象的toString()方法时会对数组中的每个元素调用toString()方法,如果元素的值为NULL或者undefined时会返回空的字符串,然后将得到的每项的值拼成一个使用 逗号“,”分隔的字符串。
一元减号运算符
使用一元减号运算符时如果运算数是数值类型则直接对运算数取负,否则会先尝试把运算数转换为数值类型,转换过程相当于执行Number函数,然后再对得到的结果取负。
逻辑非运算
执行逻辑非运算时如果操作数为NaN、NULL或undefined 时返回 true。
通过上面的知识可以得出代码 var ie = !-[1,]; 其实等价于 var ie = !(-Number([1,].toString())); 在IE6\7\8中值为true。如分析的有什么不对的地方或者有什么不同意见欢迎指正!
相关推荐:
jquery select选中的一个小问题
点击按钮后 文本框变为Select下拉列表框
sql中all,any,some用法
Mootools 1.2教程 滑动效果(Slide)
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
盘锦网站制作公司,盘锦大洼有多少5G网站?
内网网站制作软件,内网的网站如何发布到外网?
网页设计网站制作软件,microsoft office哪个可以创建网页?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
电商网站制作公司有哪些,1688网是什么意思?
网站设计制作企业有哪些,抖音官网主页怎么设置?
h5免费制作网站怎么下载保存,h5网页制作软件?
win2003 iis 404 设置方法与小技巧
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作农业网站的软件,比较好的农业网站推荐一下?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
个人网站怎么制作html和css,我想自己制作一个网页,请问怎么制作?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
JavaScript中Object和Function的关系小结
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
三网主机加速引擎 三代功能助网站腾飞
,柠檬视频怎样兑换vip?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
唐山网站制作公司,河北省准生证办理官网入口?
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
专业网站制作的公司有哪些,12306网站是什么公司做的啊?
平台网站制作多少钱,机械设备的做外贸用什么平台好?
网站制作报价方案怎么写,房产网站上的报价一般比实际价格低多少?
视频网站制作教程,怎么样制作优酷网的小视频?
Mootools 1.2教程 函数
网站好制作吗知乎,网站开发好学吗?有什么技巧?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
JSP EL表达式详细介绍
在IE下获取object(ActiveX)的Param的代码
常州公司网站制作公司,常州安泰诺有限公司官网?
网页设计与网站制作内容,怎样注册网站?
解決安裝了apache却找不到服务的问题
php面向对象全攻略 (一) 面向对象基础知识
JSP 报表打印的一种简单解决方案
JavaScript null和undefined区别分析
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
MSSQL 提取汉字实现语句
网站制作公司排行榜,抖音怎样做个人官方网站
流程图在线制作网站免费导出,适合新手使用的在线流程图网站有哪些?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
点击文章内容处弹出页面代码
win2008之IIS7中FTP设置技巧
asp.net下检测SQL注入式攻击代码
MSSQL 字符段分段更新
Mootools 1.2教程 设置和获取样式表属性