if(变量)和if(变量)的区别

difference between if (!!variable), and, if (variable)?

本文关键字:if 变量 区别      更新时间:2023-09-26

使用双否定!!和根本不使用它之间有什么区别吗?

例如

if (!!variable){... vs. if (variable){...

我知道有时我使用第二个方法得到了一个警告。

什么时候使用它们?它们什么时候会在控制台中抛出一个警告?(对于变量,对象,数组等)

谢谢! !

对其赋值是有区别的,但在条件语句中使用它则没有区别。使用!!的原因是因为第一个!会将变量转换为其真实值,然后再将其转换为not。所以"hello"变为真,然后被否定,变为假,第二个!将否定假,结果为真。当试图从一个变量获得完整的值时,这可能是可取的。但是,在if语句中执行此操作不会获得太多好处。

在这种特殊情况下,没有区别。事实上,!!variable是浪费的。

但是在更一般的情况下,它将变量强制转换为布尔值。就我个人而言,我只在调试时发现这很有用,并且可以了解哪些值是真值,哪些是假值。