JavaScript是什么在我的代码中导致“未定义”?

时间:2018-10-24 20:11:24

标签: javascript undefined

几天前,我开始学习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);

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

2 个答案:

答案 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);