【发布时间】:2011-03-05 06:09:28
【问题描述】:
可能的重复:
What does this expression mean “!!”
What does the !! operator (double exclamation point) mean in JavaScript?
这是来自 Prototype Javascript 库的 sn-p:
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 有什么区别。
这只是一个约定,还是有更多不明显的地方?
【问题讨论】:
-
@Daniel 谢谢;我很肯定这之前出现过,但搜索
!!相当困难
标签: javascript