gpt4 book ai didi

javascript - JS 双感叹号——有什么好的理由使用它吗?

转载 作者:数据小太阳 更新时间:2023-10-29 04:59:29 28 4
gpt4 key购买 nike

我已经和一位同事就这个话题争论了大约一个星期。我非常喜欢速记代码,尽可能使用三元组等。最近,他一直在指责我使用双重感叹号。在运行了无数次测试之后,我开始同意他的观点……在我的代码中使用双重感叹号可能并不明智。考虑一下:

var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");

上面的示例按预期工作。然而,如果我们检查一个可能返回 undefined variable ,我们会得到一个错误,尤其是在 IE7 中。然而,如果我们在我们的控制台中运行它,我们会得到我们预期的结果:

if(randomvar) alert('Works');

使用这种方法,如果变量未定义,它会默默地失败。这让我质疑完全使用双重感叹号。是否存在实际使该运算符(operator)受益的情况?

最佳答案

!! 在 javascript 中有一个有效的用法。这是一个表达式,它将接受一个值并转换为 boolean 值 truefalse。它本质上将当前状态强制转换为 boolean 值。

这对双方都有好处

  1. 捕捉值(value)的真实性
  2. 释放原始对象以供收集(应该是最终引用)
  3. 有助于防止以后不正确地使用具有强制相等性的对象 (==)。并不能阻止它们,但将其强制为 boolean 值会删除一组场景。

关于javascript - JS 双感叹号——有什么好的理由使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476729/

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