我一直在与同事辩论这个话题大概一周。我非常喜欢速记代码,尽可能使用三元数等。最近,他一直在关注我使用双重惊叹号。经过多次测试后,我开始同意他的观点......在我的代码中使用双重惊叹号可能并不明智。考虑到这一点:JS双感叹号 - 有没有什么好的理由使用它?
var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");
上述示例按预期工作。但是,如果我们检查可能返回未定义的变量,则会发生错误,尤其是在IE7中。我们得到了我们预期的结果,但是,如果我们在控制台中运行以下命令:
使用这种方法,如果变量是不确定的,它静静地失败。这让我质疑完全使用双重感叹号。有没有真正让这个运营商受益的情况?
(给予好评使用单词“感实性”!) 很好的解释,这也是值得注意的是,当你使用这个操作是这样的: 'return !!(window.Object &&(obj1.function1 || obj.2function2)));' 它扩展了整个“强制转换”所有的东西。 convertallthethings.jpeg –