我只是想知道,没有返回语句(或没有任何返回语句)函数返回一个完全等于false的值?javascript函数在没有return语句的情况下返回什么?
例如:
function foo(){};
!!foo();
如果萤火执行应返回false(但不返回任何东西,如果我只是叫做foo();)。
非常感谢!
杰森
我只是想知道,没有返回语句(或没有任何返回语句)函数返回一个完全等于false的值?javascript函数在没有return语句的情况下返回什么?
例如:
function foo(){};
!!foo();
如果萤火执行应返回false(但不返回任何东西,如果我只是叫做foo();)。
非常感谢!
杰森
无(即结束其执行没有击中一个或一个)return语句的函数将返回undefined
。
而且,如果对undefined
值使用一次否定运算符两次,则将得到false
。
您没有看到控制台上的任何内容,因为Firebug在未定义时不打印表达式的结果(只需在控制台上输入undefined;
,您什么也看不到)。
不过,如果你直接调用console.log
功能,你将能够看到它:
function foo(){}
console.log(foo()); // will show 'undefined'
这个答案是正确的。您可以使用Firebug控制台或Safari浏览器以交互方式测试JavaScript。 – 2009-10-13 01:07:19
或者将以下内容复制到地址栏中:javascript:alert(function(){}()); – Marius 2009-10-13 01:18:03
<html>
<body>
<script>
function a() {}
alert(a());
</script>
</body>
</html>
找出来,尝试这种在Firebug控制台:
alert((function(){})());
的JavaScript也具有第二个值,表示不存在 值。未定义的值代表更深层次的缺席。它是尚未初始化的变量值 以及在查询对象 属性或数组元素不存在的值时获得的值。未定义的 值也由没有返回值的函数 和未提供参数为 的函数参数的值返回。 undefined是一个预定义的全局变量 – Xsi 2014-05-03 12:22:26