@Ivanushka255

Почему не происходит перезаписи значений параметров ф-ции?

Не понимаю почему не происходит перезапись значения аргумента ф-ции на undefined? Я всегда думал, что параметры - это своего рода переменные, только локальные:
//пример с функцией
function func(a, b = 10) {
  console.log(a, b);
};
func('word', undefined); //'word' 10 --> перезаписи на undefined не происходит 

//пример с переменной
let a = 5;
a = undefined;
console.log(a); //undefined --> перезапись происходит


Почему так работает? Значение по умолчанию у аргумента имеет приоритет?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ICUI4CU
С MDN
Параметры по умолчанию позволяют задавать формальным параметрам функции значения по умолчанию в случае, если функция вызвана без аргументов, или если параметру явным образом передано значение undefined.
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Потому, что undefined в js - это специальное значение, суть которого быть значением по умолчанию для неинициализированных переменных.
То есть инициализация переменной значением undefined - это все равно, что инициализация значением по умолчанию.
Когда Вы в сигнатуре функции пишете b = 10 - это означает, что инициализируй b значением 10 если там инициализация по умолчанию (undefined).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы