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