1

几天前我开始学习 JavaScript,我正在编写的一段简单代码中的一个 for 循环导致了undefined一个警告。我明白这是未定义类型的变量的结果。问题是我不知道我必须修复代码的哪一部分。这是一段受影响的代码:

var message;   
for (var songs = 0; songs < playlist.length; songs++) {
    message += '\n' + (songs+1) + '. ' + playlist[songs] + '\n';
}

alert(message);

undefined在行的右上方显示playlist数组的第一个元素。

我尝试一次删除变量一的元素,message以检查是哪一个导致了它。我还尝试添加:message = String(message);在 for 循环之后。

我将非常感谢对我的问题的帮助/解释。

4

2 回答 2

4

你还没有用message一个值初始化你的变量,所以它是undefined.

将其设置为初始值,如下所示:

var message = '';
于 2018-10-24T20:14:03.360 回答
0

您初始化message为一个未定义的值,然后添加到它 - 当该值被强制转换为字符串时,导致字符串“未定义”。

相反,尝试将其初始化为空字符串:

var playlist = ["foo","bar","bar"] 

var message = "";   // <-- here
for (var songs = 0; songs < playlist.length; songs++) {
    message += '\n' + (songs+1) + '. ' + playlist[songs] + '\n';
}

alert(message);

于 2018-10-24T20:13:52.607 回答