Possible Duplicate:
What is the !! operator in JavaScript?
What does !! (double exclamation point) mean?
我正在我的工作场所浏览一些自定义的javascript代码,我无法理解下面的构造。
1
| var myThemeKey = (!!$('row') && $('row').hasClassName('green-theme')) ? 'green' : 'white'; |
除!!运算符外,我了解上面这行的所有内容。我假设它是一个NOT操作符,NOT的NOT是原值,但为什么有人要做NOT的NOT呢?
有人能帮我理解上面的代码行发生了什么吗?
- stackoverflow.com/questions/784929/…
- 重复stackoverflow.com/questions/784929/…
- stackoverflow.com/questions/784929/…
- 简单的答案是,它将值转换为布尔值-因此,如果值为非零,则为真,否则为假。
- @斯特弗里斯-欢迎来到StackOverflow。这个问题以前已经被问过了,所以你的问题可能会被解决。当它真的按照链接第一次被问到问题,你应该找到你正在寻找的信息。
- 以后,不要以"请帮助我理解…"开头标题,这只会在键入问题时在可能的重复搜索列表中产生非常糟糕的结果。只需提出一个明确、具体和切题的问题。然后,您将获得与当前类似的结果,如右列的"相关"部分(其中包括一些重复的问题以及您要查找的答案;)。
- @Richard JP Le Guen-谢谢……我很感激你的指示。
- @巴鲁斯克-谢谢你的提示……我以后也会这么做的。
!!确保生成的类型是布尔型(true或false)。
javascript:alert("foo")->foo。
javascript:alert(!"foo")->false。
javascript:alert(!!"foo")->true。
javascript:alert(!!null)->false。
他们这样做是为了确保$('row')不为空。
它比$('row') != null ? true : false短。