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。如分析的有什么不对的地方或者有什么不同意见欢迎指正!
相关推荐:
比较全面的event对像在IE与FF中的区别 推荐
郑州企业网站制作公司,郑州招聘网站有哪些?
学习ExtJS 访问容器对象
MooTools 1.2中的Drag.Move来实现拖放
网站制作新手教程,新手建设一个网站需要注意些什么?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
javascript 表单验证常见正则
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
JavaScript 替换Html标签实现代码
通过JS 获取Mouse Position(鼠标坐标)的代码
Oracle 游标使用总结
,合肥人才网站哪些比较好?有效果?
制作农业网站的软件,比较好的农业网站推荐一下?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
苏州网站制作公司鹅鹅鹅科技,统硕科技苏州有限公司官网?
营销式网站制作方案,销售哪个网站招聘效果最好?
php 不同编码下的字符串长度区分
官网网站制作腾讯审核要多久,联想路由器newifi官网
windows 复制隐藏帐号完全批处理
Jquery 设置标题的自动翻转
小学生作文妙语 开怀大笑作品
jsp form表单方法示例
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
ASP 三层架构 Error处理类
专业网站制作公司有哪些,推荐几家专业的天津网站制作公司?
个人摄影网站制作流程,摄影爱好者都去什么网站?
制作网站公司那家好,网络公司是做什么的?
Mootools 1.2教程 滑动效果(Slide)
济南企业网站制作公司,济南社保单位网上缴费步骤?
JavaScript null和undefined区别分析
昆明高端网站制作公司,昆明公租房申请网上登录入口?
Python中的Function定义方法第1/2页
常州企业网站制作公司,全国继续教育网怎么登录?
使用JS判断是否数字和小数点组合的数字的两中方法比较(isNaN和逐判断)
Mootools 1.2教程 设置和获取样式表属性
网站专业制作公司有哪些,做一个公司网站要多少钱?
asp 采集程序常用函数分析
代购小票制作网站有哪些,购物小票的简要说明?
网站制作模板下载什么软件,ppt模板免费下载网站?
php面向对象全攻略 (十二) 抽象方法和抽象类
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
php面向对象全攻略 (十七) 自动加载类
网站制作服务平台,有什么网站可以发布本地服务信息?
教学论文网站制作软件有哪些,写论文用什么软件
?
,成都益民投资集团官网?
阳春网页定制,2025年阳春四中学信网学籍查询官网?