我在JavaScript的第一天,我有一个我不明白的事情。我有这段代码:
var a = [1, 2, 3, 5, 8];
var b = [];
for(var i=0; i<a.length; i++){
b.push(a[i]);
}
console.log(b);
输出是:
[ 1, 2, 3, 5, 8 ]
=> undefined
请您解释一下undefined的含义?
答案 0 :(得分:5)
你正在调用一个函数console.log并且函数没有重新调整任何值,那么它是未定义的。
所以在这种情况下
console.log显示数组b,最后显示该函数返回的值。在这种情况下,没有什么。因此将显示未定义。
答案 1 :(得分:4)
您可能正在浏览器的控制台中运行此功能。它在调用class Post implements ResourceInterface
{
use TimestampableEntity;
后打印返回的值。
console.log()
返回console.log()
。 undefined
是另一个问题。可以这么说,就这个实例而言,它是一个没有明确undefined
语句的函数返回的默认值。
你问:
所以基本上每当我调用一个返回void的函数时(在此 case console.log())我会得到这个评估,对吗?未定义。
不要混淆return
和void
。他们不一样。您甚至无法返回undefined
,它是运营商的关键字:void operator。如果您尝试将其返回,则会出现语法错误。
如果您定义的函数未提供明确的void
,则默认情况下它将返回return
:
undefined
function foo(){
var a = 2 + 2;
}
var bar = foo(); // bar has the value "undefined"
具有讽刺意味,因为它是一个特殊的定义值。您可以与它进行比较,您可以为其分配内容,您可以明确地返回它。这是一个特殊的假值。
答案 2 :(得分:2)
您收到undefined
,因为您正在编写的JavaScript中没有returned
。
即使你只是在控制台中写这个:
console.log('Bar');
您会看到undefined
;
但是,如果你在控制台中运行它
function returnSomething() {
return 'Hello';
}
returnSomething();
你会看到“你好”,不再看到undefined
。
答案 3 :(得分:0)
在这种情况下,&#34; undefined&#34;只是意味着脚本已经完成运行。它看起来像你的程序做它应该做的事情,它填充&#39; b&#39;并将其记录到控制台。完成后,脚本完成并输出&#34; undefined&#34;因为它已经完成了。
答案 4 :(得分:0)
当您在控制台中执行操作时,将记录您执行的每一行的结果。
例如,如果您在控制台中运行var x = 5;
,您还会看到未定义的。那是因为var x = 5;
运行后,如果您在控制台中运行x = 9;
,则会在该行后面看到9
。这意味着x = 9
的输出是9
(这只是JavaScript的创建者所决定的,但有用的知识)。
就像创建一个变量不输出任何东西一样,如果你调用一个不返回任何东西的函数,你也会看到未定义的打印。
console.log
是一个不返回任何内容的函数,但它是一个向控制台添加文本的函数。所以你看到的第一件事是console.log(b)
输出的文本(你的数组),第二行是函数的输出(未定义)。
希望这会有所帮助:)