我只是想知道,没有return语句的函数(或没有命中任何return语句)是否返回一个完全等同于false的值?
例如:
function foo(){};
!!foo();
如果在firebug中执行,则返回false(但如果我刚调用foo(),则不返回任何内容)。
非常感谢!
杰森
答案 0 :(得分:69)
没有return语句的函数(或者在没有命中的情况下结束执行的函数)将返回undefined
。
如果您在undefined
值上使用一次否定运算符两次,则会得到false
。
您在控制台上没有看到任何内容,因为Firebug在未定义时不打印表达式的结果(只需尝试在控制台键入undefined;
,您将看不到任何内容)。
但是,如果直接调用console.log
函数,您将能够看到它:
function foo(){}
console.log(foo()); // will show 'undefined'
答案 1 :(得分:3)
<html>
<body>
<script>
function a() {}
alert(a());
</script>
</body>
</html>
答案 2 :(得分:1)
要了解,请在firebug控制台中尝试:
alert((function(){})());