如何解决JavaScript中的双重否定!! - 目的是什么?
它转换为布尔值。第一个!
否定它一次,像这样转换值:
-
undefined
至true
-
null
至true
-
+0
至true
-
-0
至true
-
''
至true
-
NaN
至true
-
false
至true
- 所有其他表达式
false
然后另一个!
再次否定它。一个简洁的布尔转换,完全等同于ToBoolean仅仅因为!
被定义为它的否定。但是,这里没有必要,因为它只是用作条件运算符的条件,它将以相同的方式确定真实性。
解决方法
我遇到过这段代码:
function printStackTrace(options) {
options = options || {guess: true};
var ex = options.e || null,guess = !!options.guess;
var p = new printStackTrace.implementation(),result = p.run(ex);
return (guess) ? p.guessAnonymousFunctions(result) : result;
}
我不禁想知道为什么双重否定?有没有其他方法可以达到同样的效果?
(代码来自https://github.com/eriwen/javascript-
stacktrace/blob/master/stacktrace.js。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。