2009-10-13 64 views
54

我只是想知道,没有返回语句(或没有任何返回语句)函数返回一个完全等于false的值?javascript函数在没有return语句的情况下返回什么?

例如:

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

如果萤火执行应返回false(但不返回任何东西,如果我只是叫做foo();)。

非常感谢!

杰森

+1

的JavaScript也具有第二个值,表示不存在 值。未定义的值代表更深层次的缺席。它是尚未初始化的变量值 以及在查询对象 属性或数组元素不存在的值时获得的值。未定义的 值也由没有返回值的函数 和未提供参数为 的函数参数的值返回。 undefined是一个预定义的全局变量 – Xsi 2014-05-03 12:22:26

回答

68

无(即结束其执行没有击中一个或一个)return语句的函数将返回undefined

而且,如果对undefined值使用一次否定运算符两次,则将得到false

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

不过,如果你直接调用console.log功能,你将能够看到它:

function foo(){} 

console.log(foo()); // will show 'undefined' 
+0

这个答案是正确的。您可以使用Firebug控制台或Safari浏览器以交互方式测试JavaScript。 – 2009-10-13 01:07:19

+7

或者将以下内容复制到地址栏中:javascript:alert(function(){}()); – Marius 2009-10-13 01:18:03

3
<html> 
<body> 
<script> 
function a() {} 
alert(a()); 
</script> 
</body> 
</html> 
1

找出来,尝试这种在Firebug控制台:

alert((function(){})()); 
相关问题