JavaScript 是什么导致我的代码出现 'undefined'?

JavaScript what is causing 'undefined' in my code?

我几天前开始学习 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 循环之后。

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

您将 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);

您尚未使用值初始化 message 变量,因此它是 undefined

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

var message = '';