何时以及为何使用!!在JavaScript中?

时间:2016-10-18 09:42:20

标签: javascript compare comparison comparison-operators

我遇到了一个使用!!运算符进行比较的javascript程序。我知道!代表NOT EQUAL。因此,逻辑!!表示NOT OF NOT EQUALEQUAL

if (!!var_1){
   //...
}

我的问题是为什么人们有时会使用!!而不是==运算符?

我读过类似的问题,但无法弄清楚我们究竟何时使用它。

1 个答案:

答案 0 :(得分:2)

!!不是运算符,只是!运算符两次。

!oObject  //Inverted boolean
!!oObject //Non inverted boolean so true boolean representation

一些输出示例:

alert(true); // Gives true
alert(!true); // Gives false
alert(!!true); // Gives true
alert(!!!true); // Gives false

alert(false); // Gives false
alert(!false); // Gives true
alert(!!false); // Gives false
alert(!!!false); // Gives true

你看,一个“!”只是变化是从假到真或反过来。使用两个或多个“!”,过程只是重复并再次更改其值。