Ste*_*eve 6 javascript boolean operators shorthand
我和一位同事一直在争论这个话题大约一个星期.我非常喜欢速记代码,使用三元等,无论我在哪里.最近,他一直在挑剔我使用双重感叹词.在经过多次测试后,我开始同意他的观点......在我的代码中使用双重感叹词可能并不明智.考虑一下:
var myvar = "Hello";
return (!!myvar ? "Var is set" : "Var is not set");
Run Code Online (Sandbox Code Playgroud)
上面的示例按预期工作.但是,如果我们检查可能返回undefined的变量,我们会收到错误,尤其是在IE7中.但是,如果我们在控制台中运行它,我们会得到预期的结果:
if(randomvar) alert('Works');
Run Code Online (Sandbox Code Playgroud)
使用此方法,如果变量未定义,则无提示失败.这让我质疑完全使用双重感叹词.是否存在实际上使该运营商受益的情况?
!!在javascript中有一个有效的用途.它是一个表达式,它将取一个值并转换为布尔值true或false.它基本上将当前状态强制转换为布尔值.
这对两者都有好处
==)帮助防止以后对象的错误使用.不会阻止它们全部,但强制它降为bool会删除一组场景.!!x强制x转换为布尔值,具有属性x == !!x和typeof !!x === "boolean".(如果你覆盖valueOf,一般情况下可能不是真的,但我现在不想考虑它.)
| 归档时间: |
|
| 查看次数: |
3397 次 |
| 最近记录: |