Вопрос

При объединении присваивания с запятой (чего, вероятно, делать не следует), как 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

Что здесь делают круглые скобки?

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top