Так что же делает JavaScript с необязательными элементами и почему?

Возьмите следующий код:

alert("Предупреждение", "Возникла проблема", "Красная тревога");

Согласно официальной документации JavaScript: метод alert() отображает окно предупреждения с указанным сообщением и кнопкой OK.

Однако приведенный выше код имеет три указанных сообщения — «Предупреждение», «Есть проблема» и «Красное предупреждение». Однако метод предположительно принимает только один.

Так что же происходит, когда мы запускаем код?

Итак, мы получили окно с сообщением «Предупреждение» — это был наш первый аргумент. Интересно, что случилось с другими нашими аргументами?

Они были проигнорированы

JavaScript очень либерален, когда речь идет о количестве аргументов, которые вы можете передать функции. Если вы передадите больше аргументов, чем ожидает функция, они будут проигнорированы. С другой стороны, если вы не передадите достаточно аргументов, им будет автоматически присвоено значение: undefined.

Недостатком этого подхода является то, что во время компиляции можно легко пропустить ошибки, и вам придется полагаться на модульное тестирование или, что еще хуже, на пользователей. Однако в большинстве сценариев вы просто передаете слишком много аргументов, и они не используются.

Однако есть и положительная сторона. Это позволяет нам передавать необязательные аргументы. Представьте ситуацию, когда веб-сайт запрашивает пол и возраст пользователя. Пользователь не хочет указывать свой возраст.

Обратите внимание, что мы передаем только пол, который имеет значение «мужской».

и если бы мы передали два параметра, результат был бы таким:

Вывод

Мы все знаем, что у JavaScript есть свои причуды, и, как и у остальных, в этом просто нужно немного разобраться. Это простое недоразумение в основном не вызывает проблем во время выполнения и позволяет нам иметь элементарный способ перегрузки методов.

Довольно аккуратно!