"if (!!variable)" 和 "if (variable)" 的区别是什么?

22 浏览
0 Comments

"if (!!variable)" 和 "if (variable)" 的区别是什么?

这个问题已经有了答案

有人能解释一下这个“双重否定”的技巧吗? [重复]

在JS中使用双重否定!!和根本不使用是否有区别?

例如

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

我知道有时候用第二种方法会出现警告..

何时应该使用每种方法?对于变量、对象、数组等,何时会抛出警告?

谢谢!!

admin 更改状态以发布 2023年5月21日
0
0 Comments

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

然而在更一般的情况下,它会将变量转换为布尔值。就我个人而言,我只在调试时和学习什么值为真值和假值时发现它有用。

0
0 Comments

在分配它时会有差异,但在条件语句中使用它时没有差异。之所以使用!!是因为第一个!将将变量转换为它的真值评估,然后对它进行not操作。因此,"hello"变为真值,然后被否定,变为假,第二个!将否定假值,导致为真。在尝试获取变量的真值时,这可能是可取的。然而,在if语句中这样做并没有太多收益。

0