gpt4 book ai didi

javascript - !!变量和变量有什​​么区别

转载 作者:行者123 更新时间:2023-11-28 19:19:49 25 4
gpt4 key购买 nike

我看到一些开发人员以一种对我来说没有意义的方式使用变量,这是我在 AngularJS 中更常见的情况。

考虑这段代码:

var someVariable = (someOtherVariable === 'true');
if (!!someVariable) {
// do some stuff here
}

为什么不直接省略那两个感叹号呢?是不是一样?这样做有什么好处?

最佳答案

双非运算符!!将(可能是非 bool 值)值强制转换为 bool 值。

在您的具体示例中:

var someVariable = (someOtherVariable === 'true');
if (!!someVariable) {
// do some stuff here
}

someVariable 已经保证是 bool 值(因为 === 比较的结果始终是 bool 值),因此将其强制为 bool 值不会改变以任何方式进行操作,几乎都是浪费代码。即使它还不是 bool 值,您也不需要将其强制为 bool 值只是为了像 if (someVariable) 那样测试它,因此还有另一个不使用 的原因!! 这里。

!! 有用时,当您想在某处存储一个真正的 bool 值,但您可能只有一个 true 或 falsey 值,不一定是一个 true Boolean 时。然后您可以使用 !! 将其强制为 bool 值。

<小时/>

因此,假设您有一些值不一定是 bool 值,并且您想根据第一个变量的真实性或虚假性将其他值设置为真 bool 值。你可以这样做:

var myVar;
if (someVar) {
myVar = true;
} else {
myVar = false;
}

或者这个:

myVar = someVar ? true : false; 

或者这个:

myVar = !!someVar;

关于javascript - !!变量和变量有什​​么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29088892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com