为了账号安全,请及时绑定邮箱和手机立即绑定

javascript if(!-[1,])怎么理解、怎么会有这样的运算符判断的

javascript if(!-[1,])怎么理解、怎么会有这样的运算符判断的

胡子哥哥 2019-02-14 14:14:53
先谢谢了    var addEvent = new function(){        if(!-[1,]){            return function(elem,type,func){                attachEvent(elem,'on'+type,func);            };        }        else {            return function(elem,type,func){                addEventListener(elem,type,func,false);            }        }    };
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

没见过这种写法,不过看到'on'+的时候有一个想法,于是验证了一下。。。
该表达式在IE8下返回true,在其他浏览器下返回false
原因在于[1,]在IE8下转换成字符串的时候变成了1,,而其他的浏览器是1,于是导致后续的转换为bool值的时候,IE8为true,其他为false

查看完整回答
反对 回复 2019-02-19
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

如楼上所说,这里就是用来判断是否是低版本IE的(使用attachEvent来添加事件)。只不过这个判断方法是目前已知最少代码的而已


查看完整回答
反对 回复 2019-02-19
  • 2 回答
  • 0 关注
  • 600 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信