是个 !!操作员甚至在Javascript中需要?

时间:2011-10-26 18:02:05

标签: javascript jquery jquery-templates

我可以理解您希望将对象值转换为布尔值并将其保存在变量中的情况。但是,我在jQuery模板中遇到了以下代码,并想知道是否!! (双感叹号运算符)甚至是必要的。

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

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

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

我的假设是对的吗?

1 个答案:

答案 0 :(得分:8)

JavaScript中没有!!运算符。只有!。您所看到的是该单个运算符的双重应用。

!的单个应用程序将通过评估其参数的“真实性”来返回布尔值,给出布尔值的倒数。因此,第二个!给出了的布尔逆值,因此它是原始值的布尔“真值”。

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

someAPI( !! someExpression );