在没有return语句的情况下,javascript函数会返回什么?

时间:2009-10-13 01:00:36

标签: javascript

我只是想知道,没有return语句的函数(或没有命中任何return语句)是否返回一个完全等同于false的值?

例如:

function foo(){};
!!foo();

如果在firebug中执行,则返回false(但如果我刚调用foo(),则不返回任何内容)。

非常感谢!

杰森

3 个答案:

答案 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(){})());