Задать вопрос
@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 --> перезапись происходит


Почему так работает? Значение по умолчанию у аргумента имеет приоритет?
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Решения вопроса 2
@ICUI4CU
С MDN
Параметры по умолчанию позволяют задавать формальным параметрам функции значения по умолчанию в случае, если функция вызвана без аргументов, или если параметру явным образом передано значение undefined.
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Потому, что undefined в js - это специальное значение, суть которого быть значением по умолчанию для неинициализированных переменных.
То есть инициализация переменной значением undefined - это все равно, что инициализация значением по умолчанию.
Когда Вы в сигнатуре функции пишете b = 10 - это означает, что инициализируй b значением 10 если там инициализация по умолчанию (undefined).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы