-3

我目前正在学习 Javascript,距离我以 C++ 为中心的编程课程的期末考试不到一周,并且C++循环会停止,i!<10但我假设它会在 JS 中继续运行,因为我在 9 点之后得到输出。

我在 Chrome 中使用 JS 控制台

代码和输出是:

for (i=0; i<10; i++){
console.log("This is the number" + i.toString());
}

This is the number0
This is the number1
This is the number2
This is the number3
This is the number4
This is the number5
This is the number6
This is the number7
This is the number8
This is the number9
undefined
4

5 回答 5

3

未定义是因为您在运行此代码时不返回任何内容,您没有任何返回值,控制台评估您的代码并在运行后显示返回值..在运行时您编写输出,如

This is the number0
This is the number1
.
.
This is the number9

在那之后

控制台写入代码的返回值,此处未定义

于 2013-05-21T22:12:43.817 回答
1

finalundefinedfor循环的返回值——它没有返回值。当您在控制台中键入内容时,会打印其结果。就像我说的,for循环的结果是undefined.

尝试将其放在控制台中:

var a = "asdf";

它应该打印undefined。但是当你输入:

a

它应该打印"asdf"。那是因为var语句的返回值是什么。

于 2013-05-21T22:14:18.533 回答
0

尝试:

for(var i = 0;i < 10;i++){ /*your stuff here*/ }

var在变量之前添加i

于 2013-05-21T22:05:25.480 回答
0

下面是正确的方法,C++和Javascript类似,你的代码应该有问题:

for (i=0; i<10; i++){
  console.log(i);
}

这是jsfiddle

在此处输入图像描述

于 2013-05-21T22:07:39.220 回答
0

返回值会立即出现在 Chrome 的 JS 控制台中,就像 node.js 交互模式和许多其他现代 JavaScript 控制台一样。您应该忽略最终的 undefined,因为它与您的循环无关,它在 9 处停止。如果您不相信我,请在 HTML 文件而不是控制台中尝试。

一些注意事项:在使用之前,您应该始终将 var 添加到任何未定义的变量。在您的示例中,您使用 i 而不先定义它。如果您这样做,那么该变量将位于全局命名空间中,并可能覆盖另一个上下文或类中的另一个 i 实例。一个例子:

function foo() {
    console.log(i);    // i => window.i
}

function bar() {
    var i = 0;         // i => window.bar.i
    console.log(i);
}

for (i=0; i<10; i++) { // loop is using window.i because no var declaration
    console.log(i);    // will log 0 to 9
}

foo();  // will log 9
bar();  // will log 0
于 2013-05-21T22:28:00.807 回答