Оператор запятой Javascript - PullRequest
       9

Оператор запятой Javascript

0 голосов
/ 02 февраля 2009

Комбинируя назначение с запятой (что, вероятно, не следует делать), как javascript определяет, какое значение назначено? Рассмотрим эти два фрагмента:

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);

И

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl((i+=1, i+=1, i+=1, i+=1));
nl(i);

Первые выходы

1
4

в то время как второй выводит

4
4

Что здесь делают скобки?

1 Ответ

3 голосов
/ 02 февраля 2009

Я перепутал две вещи здесь. Первый вызов 'nl' - это вызов функции с четырьмя аргументами. Вторым является вычисление запятой в один аргумент.

Итак, ответ: значение списка выражений, разделенных ',' является значением последнего выражения .

...