打印数组项时显示 "undefined"

An "undefined" showed when printing items of an array

我创建了一个 Javascript 代码来显示项目列表,如下所示,但在有序列表之前显示了意外的 undefined。我不知道它在那里是如何显示的。

这段代码中是否有未定义或错误插入的变量?

Demo is also on JSBIN. (And here 是编写具有相同目标的代码的另一种更好的方法。)

var playList = [
  "First Life",
  "Spaceman",
  "Run run run"
];

function print(message) {
  message += "<ol>";
  for (var i=0; i<playList.length; i+=1) {
    message += "<li>" + playList[i]+"</li>";
  }
  message += "</ol>";
  document.write(message);
}

print();

由于您没有将任何内容作为参数传递给 print(),因此 message 默认为 undefined

你可以使用OR ||message 的值设置为空字符串,当它没有被传递给函数时。

var playList = [
  "First Life",
  "Spaceman",
  "Run run run"
];

function print(message) {
  message = message || ''; // If no message is passed, use empty string

  message += "<ol>"; // Removed + from here

  for (var i = 0; i < playList.length; i += 1) {
    message += "<li>" + playList[i] + "</li>";
  }
  message += "</ol>";
  document.write(message);
}

print();

您还可以缩短代码如下:

var playList = [
  "First Life",
  "Spaceman",
  "Run run run"
];

function print(message) {
  document.write((message || '') + '<ol><li>' + playList.join('</li><li>') + '</li></ol>');
}

print();
ol {
  color: green;
}