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