几天前,我开始学习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
变量的元素,以检查可能是由哪个元素引起的。
我还尝试在for循环后添加:message = String(message);
。
我将非常感谢您对我的问题的帮助/解释。
答案 0 :(得分:4)
您尚未使用值初始化message
变量,因此它是undefined
。
将其设置为初始值,如下所示:
var message = '';
答案 1 :(得分:0)
您将message
初始化为一个未定义的值,然后添加到该值中-当该值被强制转换为字符串时,将导致字符串“ undefined”。
相反,请尝试将其初始化为空字符串:
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);