Comma-оператор возвращает первое значение вместо второго в списке аргументов?
MDN утверждает, что:
Оператор запятой оценивает оба своих операнда (слева направо) и возвращает значение второго операнда.
Однако, когда я попытался запустить <script> alert(1, 2); </script>
, он отображает "1" вместо "2".
Я что-то недопонимаю?
Ответы
Ответ 1
В контексте вызова функции запятая используется для разделения параметров друг от друга. Итак, что вы делаете, это передать второй параметр в alert()
, который бесшумно игнорируется.
То, что вы хотите, возможно таким образом:
alert((1,2));
Дополнительные скобки образуют параметр самостоятельно; внутри них вы можете использовать запятую как оператор.
Ответ 2
Запятая (,)
также является разделителем параметров.
Используйте alert((1,2))
вместо этого.
Ответ 3
Когда вы используете его таким образом, запятая не является оператором, это разделитель между параметрами вызова метода alert
.
Если вы помещаете круглые скобки вокруг них, чтобы это выражение, оно покажет вам 2
:
alert( (1,2) );