可能重复:
What does this expression mean “!!”
What does the !! operator (double exclamation point) mean in JavaScript?原型库使用!!运营商
下面是Prototype JavaScript库的一个片段:
Browser: (function(){
var ua = navigator.userAgent;
var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
return {
IE: !!window.attachEvent && !isOpera,
Opera: isOpera,
WebKit: ua.indexOf('AppleWebKit/') > -1,
Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
MobileSafari: /Apple.*Mobile/.test(ua)
}
})(),
这一切都很好,我理解的目的创建一个浏览器对象。有一件事引起了我的注意,我一直无法弄清楚是使用双不操作者!在IE属性中为。
如果您通读代码,您会发现它在许多其他地方。我不明白什么是!!window.attachEvent
和只使用window.attachEvent
之间的区别。
这只是一个惯例还是有更多的不是明显的?
http://stackoverflow.com/questions/3059546/what-does-this-expression-mean – 2010-06-18 02:22:30
@Daniel谢谢;我对此表示肯定,但是搜索'!!'相当困难 – 2010-06-18 02:24:00