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

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

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

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

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

Ответы

Ответ 1

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

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

 alert((1,2));

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

Ответ 2

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

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

Ответ 3

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

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

alert( (1,2) );