Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/JavaScript/delete-vs-undefined

В чём разница между удалением свойства через `delete` и присваиванием `undefined`?

СобеседованиеОбъектыПеременные и типы данных
  • delete полностью удаляет свойство из объекта, свойство перестаёт существовать
  • Присваивание undefined оставляет свойство в объекте, но со значением undefined
  • Разница:
    1. 'prop' in obj вернёт false после delete, но true после присваивания undefined
    2. Object.keys(obj) не будет включать удалённое свойство, но включит свойство со значением undefined
    3. delete удаляет свойство из объекта, освобождение памяти происходит позже через сборку мусора (GC), когда на значение больше нет ссылок
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov