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

Fur*_*lon 57 javascript

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

例如:

function foo(){};
!!foo();
Run Code Online (Sandbox Code Playgroud)

如果在firebug中执行,这应该返回false(但如果我只调用foo(),则不返回任何内容).

非常感谢!

贾森

CMS*_*CMS 70

没有return语句的函数(或者在没有命中的情况下结束执行的函数)将返回undefined.

如果你对一个undefined值使用一元否定运算符两次,你就会得到false.

您没有在控制台上看到任何内容,因为Firebug在未定义时不打印表达式的结果(只需尝试undefined;在控制台输入,您将看不到任何内容).

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

function foo(){}

console.log(foo()); // will show 'undefined'
Run Code Online (Sandbox Code Playgroud)

  • 或者只需将以下内容复制到地址栏中:javascript:alert(function(){}()); (7认同)