您何时以及为什么使用!!用javascript?

您何时以及为什么使用!!用javascript?,javascript,compare,comparison,comparison-operators,Javascript,Compare,Comparison,Comparison Operators,我遇到一个javascript程序,它正在使用用于比较的运算符。我知道表示不相等。所以逻辑上表示不等于,即等于 if (!!var_1){ //... } 我的问题是为什么人们有时会使用和非==运算符 我读过类似的问题,但不知道我们什么时候使用它。不是运算符,它只是操作员两次 !oObject //Inverted boolean !!oObject //Non inverted boolean so true boolean representation 一些输出示例: alert

我遇到一个javascript程序,它正在使用
用于比较的运算符。我知道
表示
不相等
。所以逻辑上
表示
不等于
,即
等于

if (!!var_1){
   //...
}
我的问题是为什么人们有时会使用
和非
==
运算符


我读过类似的问题,但不知道我们什么时候使用它。

不是运算符,它只是
操作员两次

!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

你看,一个“!”只是从假变为真,或者反过来。使用两个或两个以上的“!”时,该过程只是重复并再次更改其值。

不是运算符,它只是
操作员两次

!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

你看,一个“!”只是从假变为真,或者反过来。使用两个或两个以上的“!”时,该过程只是重复并再次更改其值。

逻辑上如此!!不等于的意思
。。。不,它的意思是不。。。基本上强制truthy值为
true
,强制false值为
false
!!将值转换为其布尔表示形式第一个
反转变量1(假为真;反之亦然)。第二个使用
反转
!变量1
(假为真;反之亦然)。因此,如果
var_1
true
,您将得到
true
。如果
false
,则得到
false
。这是一个额外的数据验证检查(我使用PHP),它与
(var_1==true)
相同,只是字符更少。
逻辑上如此!!不等于的意思
。。。不,它的意思是不。。。基本上强制truthy值为
true
,强制false值为
false
!!将值转换为其布尔表示形式第一个
反转变量1(假为真;反之亦然)。第二个使用
反转
!变量1
(假为真;反之亦然)。因此,如果
var_1
true
,您将得到
true
。如果
false
,则得到
false
。这是一个额外的数据验证检查(我使用PHP)它与
(var_1==true)
一样,只需要更少的字符。我想你可以添加很多人只是用作Boolean()的快捷方式,但是它在空数组中的行为有一些不同。我想你可以添加很多人只是用作Boolean()的快捷方式,但是,它在处理空数组时的行为方式存在一些差异