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

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

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

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

Я что-то недопонимаю?

4b9b3361

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

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

 alert((1,2));

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

19
ответ дан 07 апр. '11 в 14:56
источник

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

Используйте alert((1,2)) вместо этого.

6
ответ дан 07 апр. '11 в 14:57
источник

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

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

alert( (1,2) );
2
ответ дан 07 апр. '11 в 14:58
источник