Есть ли бóльшая пустота чем undefined?

1,00
р.
#delete #undefined #array #empty
Да, есть.
Думаю, всем известно, что для удаления элемента, в JS, используется undefined:
lеt variable = 'string' variable = undefined
Им не часто пользуются, ведь в JS работает автоматический сборщик мусора, и мало кто заботится об удалении элементов. Ещё реже встречаются люди, которые знают о существовании метода delete, а тем более те, кто замечал различия в использовании undefined и delete.
let o = { A: 9, B: 9, } delete o['A'] console.log( Object.keys(o)//массив//["B"]//length: 1 )
Далее в моём вопросе, и следующем за ним ответе, будет рассмотрен частный, но очень важный, случай различия в использовании undefined и delete в контексте массивов.
Итак (барабанная дробь) внимание, вопрос…
В чём различия при удалении элемента массива методами(подход, способ) undefined и delete и какие серьёзные и не очень последствия за этим следуют?
let arr = ['A','B','C','D','E','F'] delete arr[0] arr[1] = undefined arr[2] = void 0

Ответ
Ещё реже встречаются люди, которые знают о существовании метода delete
delete - оператор, а не метод!
В чём различия при удалении элемента массива методами undefined и delete
Присвоение undefined и оператор delete не удаляют элемент массива. Они "удаляют"/устанавливают значение, содержащееся в массиве. Сам элемент массива, после такого "удаления" остается - он становится не определенным, но позволяет выполнять операции с ним (смысл термина элемент !== смыслу термина содержимое элемента. Хотя, безусловно, ==). А различие в том, что присвоение undefined - это присвоение значения, со всеми вытекающими последствиями... тогда как delete, именно удаляет содержимое элемента.

Для удаления элементов массива, в JavaScript существует Array.splice(). Прямое назначение метода как раз в этом (и в добавлении элементов). А delete - предназначен для удаления свойств объектов.