7

我创建了一个包含几个字符串作为值的数组,因此它变成了一条非常长的行,需要一段时间才能滚动。为了把它放在多行上,我搜索并发现我可以使用 + 号来链接这些行,但我遇到了问题。这是一个小例子:

<script type="text/javascript">
var x;
var colorArr=["Red","Orange","Yellow",+
"Green","Blue","Purple"];
for(x=0;x<6;x++)
document.write(colorArr[x]+"<br/>");
</script>

这输出:

Red
Orange
Yellow
NaN
Blue
Purple

基本上,由于某种原因,该行的第一个元素变得未定义。我该如何以正确的方式做到这一点?

4

3 回答 3

16

您不需要+,只需流到下一行。Javascript 并不将行尾等同于语句的结尾。

var colorArr=["Red","Orange","Yellow",
    "Green","Blue","Purple"];

要了解您看到的行为,请注意:

var test = -"test";
alert(test);

输出NaN您看到的(不是数字)。解析器正在尝试将“Green”转换为数字——以便它可以评估它假定的数学表达式(因为它以 开头+)。

于 2012-11-07T18:47:58.650 回答
7

+ "Green"不是 一个数字。

因此NaN

尝试这样做:

var colorArr=["Red","Orange","Yellow",
              "Green","Blue","Purple"];

侧边栏:

NaN并不意味着未定义

NaN === undefined; // false
于 2012-11-07T18:48:50.317 回答
1

您只需按 Enter 键并转到下一行,语法上不需要任何内容​​。

它出现的原因NaN是它试图添加 anumber和 a string

如果你有:arr = ['whatever', 5 + 10];它会输出['whatever', 15]

于 2012-11-07T18:50:41.443 回答