function test(a, b)
{
console.log(a + b);
}
test (5, 2);
Просто привык что в C++ в параметрах функции нужно обязательно указывать их типы, а здесь даже var не надо указывать все и так работает, почему так?
JavaScript
почему в javascript в функцию можно передавать параметры без типа?
У любого значения в JS есть тип... и у этих твоих переменных, он тоже есть изначально: undefined.
Это ты еще не знаешь, что у функции можно объявить неинициализированный аргумент, и вообще не передавать его - а он все равно будет, и при этом ничего не сломается))
Почему столько свободы? Потому что JS - динамический язык, что в сочетании с продуманной семантикой дает ему мощную универсальность, недоступную многим другим ЯП (а также, заставляет программиста думать, и создает причину для тупеньких неосиляторов этот язык ненавидеть).
Если хочешь строгие типы, то на JS есть надстройка (кагбэ диалект, но не совсем) - TypeScript называется. Там этими типами можно обмазываться, и... ну в общем, можно :D
Это ты еще не знаешь, что у функции можно объявить неинициализированный аргумент, и вообще не передавать его - а он все равно будет, и при этом ничего не сломается))
Почему столько свободы? Потому что JS - динамический язык, что в сочетании с продуманной семантикой дает ему мощную универсальность, недоступную многим другим ЯП (а также, заставляет программиста думать, и создает причину для тупеньких неосиляторов этот язык ненавидеть).
Если хочешь строгие типы, то на JS есть надстройка (кагбэ диалект, но не совсем) - TypeScript называется. Там этими типами можно обмазываться, и... ну в общем, можно :D
Потому, что в JavaScript вообще невозможно задать типы параметров - никак. JS - язык с динамической типизацией: тип переменной определяется тем, какое значение присвоено этой переменной. Присвоили значение другого типа - тип переменной поменялся.
А если для переменной (не параметра) внутри функции не указать var / let / const, то будет не создание локальной переменной, а обращение к глобальной переменной с этим именем - что приводит к трудно обнаруживаемым ошибкам. И подобных граблей в JS очень много...
А если для переменной (не параметра) внутри функции не указать var / let / const, то будет не создание локальной переменной, а обращение к глобальной переменной с этим именем - что приводит к трудно обнаруживаемым ошибкам. И подобных граблей в JS очень много...
Потому что JS козлячий и требует нервов. Все динамическое и рой старых багов. Не ищи смысла в js используй да и все. Типы есть, их там как и везде, ну в 1с может меньше
Похожие вопросы
- Объясните мне, пожалуйста, что это за аргументы функции в javascript ( function(arg1, arg2, ..) ).
- Почему split не работает и правильно ли написана функция? javascript. Помогите, пожалуйста
- Вопрос по JavaScript, обращение к функции, которая находится в функции...
- JavaScript как в данном коде передавать значения не в alert а чтобы отображалось в input после каждого нажатия кнопки
- Помогите с JavaScript (локальные/глобальные переменные/функции)
- Можете привести примеры функции перемешивания массива в javascript? -_-
- У javascript есть аналог этих функций и методов, как в python?
- Аргументы функции. JavaScript
- Виды функций JavaScript
- Почему javascript не добавляет класс к body через getattribute. Скрин тут
Ну, я при объявлении функции получается не могу указать типы для ее параметров, и получается если где то окажется глобальная переменная с таким же именем то это приведет к ошибкам?