javascript – JS双重感叹 – 是否有充分的理由使用它?

我和一位同事一直在争论这个话题大约一个星期.我非常喜欢速记代码,使用三元等,无论我在哪里.最近,他一直在挑剔我使用双重感叹词.在经过多次测试后,我开始同意他的观点……在我的代码中使用双重感叹词可能并不明智.考虑一下:
var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");

上面的示例按预期工作.但是,如果我们检查可能返回undefined的变量,我们会收到错误,尤其是在IE7中.但是,如果我们在控制台中运行它,我们会得到预期的结果:

if(randomvar) alert('Works');

使用此方法,如果变量未定义,则无提示失败.这让我质疑完全使用双重感叹词.是否存在实际上使该操作符受益的情况?

解决方法

有效用途!!在javascript中.它是一个表达式,它将获取一个值并转换为布尔值true或false.它基本上将当前状态强制转换为布尔值.

这对两者都有好处

>捕捉价值的真实性>释放原始对象进行收集(应该是最终参考)>有助于防止以后使用强制等式(==)错误地使用对象.不会阻止它们全部,但强制它降为bool会删除一组场景.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面