是!!操作符在Javascript中甚至是必需的

Is the !! operator even necessary in Javascript?

本文关键字:操作符 Javascript      更新时间:2023-09-26

我可以理解当您想要将对象值转换为布尔值并将其保存在变量中时的情况。然而,我在一个jQuery模板中遇到了下面的代码,我想知道!!(双感叹号操作符)甚至是必要的

{{if !!sectionId}}
    // do something...
{{/if}}

我假设它不是,因为Javascript将自动评估if后面的表达式为布尔值。因此,您可以这样写:

{{if sectionId}}
    // do something...
{{/if}}

我的假设对吗?

JavaScript中没有!!操作符。只有!。你看到的是一个操作符的双重应用。

!的单个应用将通过评估其参数的"真实性"来返回一个布尔值,并给出该参数的布尔逆。因此,第二个!给出的布尔逆值,即值的布尔"真度"。

我个人不会像你的例子那样在简单的if语句中使用它,但是对于可能显式检查布尔类型参数的api来说,它很方便:

someAPI( !! someExpression );