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

IT技术 javascript
2021-02-03 02:02:09

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

例如:

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

如果在萤火虫中执行,这应该返回 false(但如果我只是调用 foo(); 则不会返回任何内容)。

非常感谢!

杰森

3个回答

一个没有 return 语句的函数(或一个没有命中就结束执行的函数)将返回undefined.

如果您对一个undefined使用两次一元否定运算符,您将得到false.

您在控制台上看不到任何内容,因为 Firebug 在未定义时不会打印表达式的结果(只需尝试undefined;在控制台上键入,您将什么也看不到)。

但是,如果您console.log直接调用该函数,您将能够看到它:

function foo(){}

console.log(foo()); // will show 'undefined'
<html>
<body>
<script>
function a() {}
alert(a());
</script>
</body>
</html>

要找出答案,请在 firebug 控制台中尝试此操作:

alert((function(){})());