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。如分析的有什么不对的地方或者有什么不同意见欢迎指正!
相关推荐:
域名行业再起波澜 COM降价引发代理狂潮
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
深圳网站制作公司哪家好,深圳本地有影响力的招聘网站有哪些?或者还有哪些招聘渠道?
内部网站制作流程,如何建立公司内部网站?
,巨量百应是干嘛的?
JQuery 绑定事件时传递参数的实现方法
制作证书网站有哪些,全国城建培训中心证书查询官网?
学习ExtJS border布局
jQuery 行级解析读取XML文件(附源码)
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
制作销售网站教学视频,销售网站有哪些?
,sp开头的版面叫什么?
php面向对象全攻略 (十六) 对象的串行化
制作网站怎么制作,*游戏网站怎么搭建?
网站制作推广服务平台,网站推广步骤-网络推广的方法和怎样做好一个推广?
php 代码优化的42条建议 推荐
学习ExtJS Panel常用方法
,交易猫的商品怎么发布到网站上去?
,我想办一个网站,自己会做网页。请问大概要多少钱,除了买域名、做网站、买空间还有什步骤吗?
Javascript 两个窗体之间传值实现代码
PHP 字符串分割和比较
Mootools 1.2教程 设置和获取样式表属性
php 生成饼图 三维饼图
开封网站制作公司,网络用语开封是什么意思?
C# ListView双击Item事件
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
DB2 日期和时间的函数应用说明
SqlServer 实用操作小技巧集合第1/2页
,北京保利官方网站?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
百度留言本js 大家可以参考下
Cython 三分钟入门教程
ASP 80040e14错误的解决方法
制作网站公司那家好,网络公司是做什么的?
北京专业网站制作设计师招聘,北京白云观官方网站?
唐山网站制作公司,河北省准生证办理官网入口?
ASP 正则函数替换分页后的参数
vbs 调用中文语音让你电脑听你的命令的实现代码
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
444句英语口语常见语句 背下口语以后绝对不成问题了
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
javascript Range对象跨浏览器常用操作第1/2页
深圳网站制作培训,深圳哪些招聘网站比较好?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
JS模拟的QQ面板上的多级可展开的菜单
js 获取中文拼音,Select自动匹配字母获取值的代码
如何自己制作网站手机版,用凡科建站如何制作自己的网站?