打印数组时显示“未定义”

时间:2015-09-01 09:42:07

标签: javascript function variables parameters undefined

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

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

Demo is also on JSBIN。 (而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();

1 个答案:

答案 0 :(得分:3)

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

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

&#13;
&#13;
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();
&#13;
&#13;
&#13;

您还可以按照以下步骤缩短代码:

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

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

print();
&#13;
ol {
  color: green;
}
&#13;
&#13;
&#13;