2010-02-22 76 views

回答

10

因为i是一个数字,但得到由第一+转换为字符串。使用这个:

for (var i in products) { 
    document.write(""); document.write("Write" + (i + 1)); 
    // ------------------------------------------^ 
} 
+0

Thanks! STH有同样的答案,但你有一个解释。 – Strawberry 2010-02-22 08:48:37

+0

不客气。 – Boldewyn 2010-02-22 08:49:09

+0

+1 我认为他是,但我想这可以采取任何方式。 2010-03-25 18:00:15

1

这里的问题是operator precedence。如该表所示,+运营商从左到右关联。

所以:

a + b + c 

是分组如下:

((a + b) + c) 

所以在你的原代码,表达被分组如下:

("Write" + i) + 1 

换句话说,它是字符串连接,后跟另一个字符串连接。由于您打算首先执行算术加法(i + 1),因此您必须将它们明确分组:

"Write" + (i + 1) 
相关问题