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

先谢谢了


    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);

            }

        }

    };


胡子哥哥
浏览 601回答 2
2回答

手掌心

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

慕的地8271018

如楼上所说,这里就是用来判断是否是低版本IE的(使用attachEvent来添加事件)。只不过这个判断方法是目前已知最少代码的而已
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript