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