SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (SyntaxError: применение оператора 'delete' к неполному имени не рекомендуется)

В процессе перевода.

Сообщение

SyntaxError: вызов delete on expression запрещен в строгом режиме в (Edge)
SyntaxError: применение оператора 'delete' к неполному имени не рекомендуется в (Firefox)
SyntaxError: удаление неполного идентификатора в строгом режиме запрещенно в (Chrome)

Тип ошибки

SyntaxError только в строгом режиме.

В чем ошибка?

Обычные переменные в JavaScript нельзя удалить с помощью оператора delete. В строгом режиме попытка удалить переменную вызовет ошибку и не будет разрешена.

Оператор delete может удалять только свойства объекта. Свойства объекта "квалифицированы", если они конфигурируемы.

В отличие от общепринятого мнения, оператор delete не имеет ничего общего с непосредственным освобождением памяти. Управление памятью осуществляется косвенным образом через нарушение ссылок см.memory management . В разделе управление памятью и страницы оператора delete для более подробной информации.

Эта ошибка возникает только в коде строгого режима. В нестрогом коде операция просто возвращает false.

 

Примеры

Попытка удалить простую переменную не работает в JavaScript и выдает ошибку в строгом режиме:

'use strict';

var x;

// ...

delete x;

// SyntaxError: применение оператора 'delete' к неполному имени является устаревшим

Чтобы освободить содержимое переменной, задайте для нее значение null:

'use strict';

var x;

// ...

x = null;

// X может быть собран "мусор" 

Смотри также

Метки документа и участники

Внесли вклад в эту страницу: mdnwebdocs-bot, Akh-rman, MakarovDs777
Обновлялась последний раз: mdnwebdocs-bot,