Операция delete удаляет объект, свойство объекта или элемент массива по специфицированному индексу.
Реализована в
JavaScript 1.2, NES 3.0
Версия ECMA
ECMA-262
delete objectName
delete objectName.property
delete objectName[index]
delete property // верно только внутри оператора with
Параметры
objectName |
Имя объекта.
Удаляемое свойство.
Целое число, представляющее индекс массива для удаления.
Четвёртая форма операции верна только внутри оператора with при удалении свойства объекта.
Вы можете использовать операцию delete
для удаления переменных, объявленных неявно, но не переменных, объявленных оператором var.
Если операция delete
выполнена успешно, она устанавливает свойство или элемент в undefined. Операция delete
возвращает true, если операция возможна; возвращает false, если операция невозможна.
x=42
var y= 43
myobj=new Number()
myobj.h=4 // создаёт свойство h
delete x // возвращает true (может удаляться, если объявлена неявно)
delete y //
возвращает false (не может удаляться, если объявлена с помощью var)
delete Math.PI //
возвращает false (предопределённые свойства не могут удаляться)
delete myobj.h //
code>возвращает true (свойства, определённые пользователем, могут удаляться)
delete myobj //
возвращает true (объекты могут удаляться)
Если Вы удаляете элемент массива, размер массива не меняется. Например, если удалить a[3], то a[4] останется a[4], а a[3] - undefined.
Если операция delete удаляет элемент массива, этот элемент больше не присутствует в массиве. В следующем примере trees[3] удаляется с помощью delete.
trees=new Array("redwood","bay","cedar","oak","maple")
delete trees[3]
if (3 in trees) {
// это не выполняется
}
Если Вы хотите, чтобы элемент массива существовал, но имел значение undefined, используйте ключевое слово undefined вместо операции delete.
В следующем примере элементу trees[3] присваивается значение undefined, и элемент массива продолжает существовать:
trees=new Array("redwood","bay","cedar","oak","maple")
trees[3]=undefined
if (3 in trees) {
//
это выполняется
}