Запятая возвращает первое значение вместо второго в списке аргументов?

MDN утверждает, что:

Оператор запятой оценивает оба своих операнда (слева направо) и возвращает значение второго операнда.

Тем не менее, когда я попытался запустить <script> alert(1, 2); </script>, он показывает "1" вместо "2".

Я что-то неправильно понимаю?

3 ответа

Решение

В контексте вызова функции запятая используется для отделения параметров друг от друга. Так что вы делаете, передавая второй параметр alert() который молча игнорируется.

То, что вы хотите, возможно так:

 alert((1,2));

Дополнительные скобки формируют параметр самостоятельно; внутри них вы можете использовать запятую в качестве оператора.

Запятая(,) также является разделителем параметров.

использование alert((1,2)) вместо.

Когда вы используете его таким образом, запятая не является оператором, это разделитель между параметрами в вызове alert метод.

Если вы поставите вокруг них скобки, чтобы это было выражением, оно покажет вам 2:

alert( (1,2) );
Другие вопросы по тегам