2010-02-22 3 views

ответ

10

Поскольку i это число, но получает брошен в строку первой +. Используйте это:

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

Спасибо! У STH был тот же ответ, но у вас было объяснение. – Strawberry

+0

Добро пожаловать. – Boldewyn

+0

+1 Я думаю, что он есть, но я думаю, это можно было бы принять в любом случае.

1

Вопрос здесь operator precedence. Как показано в этой таблице, оператор + сопоставляет слева направо.

Итак:

a + b + c 

сгруппированы следующим образом:

((a + b) + c) 

Таким образом, в исходном коде, выражение сгруппированы следующим образом:

("Write" + i) + 1 

Другими словами, это конкатенация строки, за которой следует другая конкатенация строк. Поскольку вы намереваетесь сначала выполнить арифметическое добавление (i + 1), вам нужно будет их явно сгруппировать:

"Write" + (i + 1) 
Смежные вопросы