[英]Why does a ! before a function not return boolean opposite value?
我正在阅读这个SO问题 。 我有点理解发生了什么,但是我很困惑为什么
!function foo() {
console.log(true) ;
}()
不返回false
。
!function () {}()
这还将返回与函数返回值相反的布尔值,在本例中为true,因为!undefined为true。 如果您希望实际的返回值是调用的结果,请尝试通过以下方式进行操作:
“也将返回布尔值相反的值”使我认为应该返回false
。 为什么不呢 alert(!true); //false
如果没有return
语句,该函数将返回undefined
。 当您申请!
undefined
您将得到true
。
尝试
console.log(!function() { return true; }());
注意,习惯用法!
在IIFE之前就是这样-一个成语。 事实!
运算符对返回值几乎没有影响,因为返回值被调用环境完全忽略了。 从而
+function() {
// whatever
}();
实际上,即使+
一元运算符不同于!
,它实际上也是完全相同的!
一元运算符。
具有空return语句或不存在的return语句的函数在调用时将返回未定义的值。 正在申请! 设置为“虚假”值(例如0,null,undefined)将返回true。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.