什么是双重感叹!!运营商意味着

时间:2011-09-17 05:44:40

标签: javascript

  

可能重复:
  What is the !! operator in JavaScript?
  What does !! (double exclamation point) mean?

我正在我的工作场所浏览一些自定义JavaScript代码,但我无法理解以下构造。

var myThemeKey = (!!$('row') && $('row').hasClassName('green-theme')) ? 'green' : 'white';

除了!!运算符之外,我理解上面一行的所有内容。我假设它是NOT运算符,而NOT NOT是原始值,但为什么有人会NOT NOT

有人可以帮我理解上面的代码行吗?

1 个答案:

答案 0 :(得分:89)

!!确保结果类型是布尔值(true或false)。

javascript:alert("foo") - > foo

javascript:alert(!"foo") - > false

javascript:alert(!!"foo") - > true

javascript:alert(!!null) - > false

他们这样做是为了确保$('row')不为空。

输入的时间比$('row') != null ? true : false短。