Baseline Widely available
ÐнноÑаÑиÑÐпеÑаÑÐ¾Ñ delete
ÑдалÑÐµÑ ÑвойÑÑво из обÑекÑа.
delete вÑÑажение
где ÑезÑлÑÑÐ°Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ ÑÑÑлкой на ÑвойÑÑво (обÑекÑа), напÑимеÑ:
delete object.property delete object['property'] delete object[index] delete property // ÑдалÑÐµÑ ÑвойÑÑва глобалÑного обÑекÑа, или, // иÑполÑзÑÑ Ð¸Ð½ÑÑÑÑкÑÐ¸Ñ with, ÑвойÑÑва обÑекÑа, на коÑоÑÑй ÑÑÑлаеÑÑÑ Ð¸Ð½ÑÑÑÑкÑиÑ
ÐÑли ÑезÑлÑÑÐ°Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ ÑвлÑеÑÑÑ ÑвойÑÑвом (обÑекÑа), delete
ниÑего не делаеÑ.
object
ÐÐ¼Ñ Ð¾Ð±ÑекÑа или вÑÑажение, ÑезÑлÑÑаÑом вÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÐºÐ¾ÑоÑого ÑвлÑеÑÑÑ Ð¾Ð±ÑекÑ.
property
УдалÑемое ÑвойÑÑво.
index
Целое ÑиÑло, пÑедÑÑавлÑÑÑее Ñобой Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð°ÑÑива, коÑоÑÑй должен бÑÑÑ ÑдалÑн.
ÐозвÑаÑÐ°ÐµÑ false, ÑолÑко еÑли ÑвойÑÑво ÑÑÑеÑÑвÑÐµÑ Ð² Ñамом обÑекÑе, а не в его пÑоÑоÑÐ¸Ð¿Ð°Ñ , и не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñдалено. Ðо вÑÐµÑ Ð¾ÑÑалÑнÑÑ ÑлÑÑаÑÑ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ true.
ÐпиÑаниеÐÑли опеÑаÑÐ¾Ñ delete
ÑÑпеÑно вÑполнÑÐµÑ Ñдаление, он полноÑÑÑÑ ÑдалÑÐµÑ ÑвойÑÑво из обÑекÑа. Ðднако, еÑли ÑвойÑÑво Ñ Ñаким же именем ÑÑÑеÑÑвÑÐµÑ Ð² ÑепоÑке пÑоÑоÑипов, обÑÐµÐºÑ ÑнаÑледÑÐµÑ ÑÑо ÑвойÑÑво из пÑоÑоÑипа.
delete
ÑÑÑекÑивен ÑолÑко пÑимениÑелÑно к ÑвойÑÑвам обÑекÑов. Ðн не оказÑÐ²Ð°ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð³Ð¾ влиÑÐ½Ð¸Ñ Ð½Ð° имена пеÑеменнÑÑ
и ÑÑнкÑий. ÐÑиÑвоение знаÑÐµÐ½Ð¸Ñ ÑвойÑÑÐ²Ñ Ð±ÐµÐ· ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑа (без опеÑаÑоÑа var) иногда невеÑно Ñ
аÑакÑеÑизÑеÑÑÑ, как глобалÑÐ½Ð°Ñ Ð¿ÐµÑеменнаÑ, (напÑÐ¸Ð¼ÐµÑ x = 5
). Ðа Ñамом деле пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿ÑиÑвоение знаÑÐµÐ½Ð¸Ñ ÑвойÑÑÐ²Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ñного обÑекÑа.
delete
не Ð¼Ð¾Ð¶ÐµÑ ÑдалиÑÑ Ð¾Ð¿ÑеделÑннÑе ÑвойÑÑва вÑÑÑоеннÑÑ
обÑекÑов (ÑакиÑ
как Object, Array, Math и Ñак далее). Ð ÑпеÑиÑикаÑии ECMA-262 они обознаÑÐµÐ½Ñ ÐºÐ°Ðº DontDelete.
x = 42; // ÑоздаÑÑ ÑвойÑÑво x в глобалÑном обÑекÑе
var y = 43; // обÑÑвлÑÐµÑ Ð½Ð¾Ð²ÑÑ Ð¿ÐµÑеменнÑÑ, y
myobj = {};
myobj.h = 4; // ÑоздаÑÑ ÑвойÑÑво h в myobj
myobj.k = 5; // ÑоздаÑÑ ÑвойÑÑво k в myobj
delete x; // возвÑаÑÐ°ÐµÑ true (x - ÑвойÑÑво глобалÑного обÑекÑа и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñдалено)
delete y; // возвÑаÑÐ°ÐµÑ false (delete не влиÑÐµÑ Ð½Ð° имена пеÑеменнÑÑ
)
delete Math.PI; // возвÑаÑÐ°ÐµÑ false (delete не влиÑÐµÑ Ð½Ð° опÑеделÑннÑе вÑÑÑоеннÑе ÑвойÑÑва)
delete myobj.h; // возвÑаÑÐ°ÐµÑ true (ÑвойÑÑва, опÑеделÑннÑе полÑзоваÑелем могÑÑ Ð±ÑÑÑ ÑдаленÑ)
with (myobj) {
delete k; // возвÑаÑÐ°ÐµÑ true (ÑквиваленÑно delete myobj.k)
}
delete myobj; // возвÑаÑÐ°ÐµÑ true (myobj ÑÑо ÑвойÑÑво глобалÑного обÑекÑа, не пеÑеменнаÑ, поÑÑÐ¾Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñдалено)
ÐÑли обÑÐµÐºÑ Ð½Ð°ÑледÑÐµÑ ÑвойÑÑво Ð¾Ñ Ð¿ÑоÑоÑипа и не Ð¸Ð¼ÐµÐµÑ ÑобÑÑвенного ÑвойÑÑва Ñ Ñаким же именем, ÑвойÑÑво не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñдалено пÑи обÑаÑении ÑеÑез ÑÑÐ¾Ñ Ð¾Ð±ÑекÑ. Ðднако можно ÑдалиÑÑ ÑÑо ÑвойÑÑво напÑÑмÑÑ Ð² пÑоÑоÑипе.
function Foo() {}
Foo.prototype.bar = 42;
var foo = new Foo();
delete foo.bar; // возвÑаÑÐ°ÐµÑ true, но безÑезÑлÑÑаÑно, Ñак как bar - наÑледÑемое ÑвойÑÑво
alert(foo.bar); // вÑÐ²Ð¾Ð´Ð¸Ñ 42, ÑвойÑÑво вÑе еÑÑ Ð½Ð°ÑледÑеÑÑÑ
delete Foo.prototype.bar; // ÑдалÑÐµÑ ÑвойÑÑво из пÑоÑоÑипа
alert(foo.bar); // вÑÐ²Ð¾Ð´Ð¸Ñ "undefined", ÑвойÑÑво болÑÑе не наÑледÑеÑÑÑ
Удаление ÑлеменÑов маÑÑива
Ðогда Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¾Ð¿ÐµÑаÑоÑа delete ÑдалÑеÑÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива, длина маÑÑива не менÑеÑÑÑ. ÐапÑимеÑ, еÑли Ð²Ñ ÑдалиÑе a[3]
, a[4]
по пÑÐµÐ¶Ð½ÐµÐ¼Ñ a[4]
, а a[3]
не опÑеделено. Так бÑÐ´ÐµÑ Ð´Ð°Ð¶Ðµ еÑли Ð²Ñ ÑдалиÑе поÑледний ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива (delete a[a.length-1]
).
Ðогда опеÑаÑÐ¾Ñ delete
ÑдалÑÐµÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива, ÑÑÐ¾Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð±Ð¾Ð»ÑÑе не ÑÑÑеÑÑвÑÐµÑ Ð² маÑÑиве. Ð ÑледÑÑÑем пÑимеÑе, trees[3]
ÑдалÑеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ delete
.
const trees = ["redwood", "bay", "cedar", "oak", "maple"];
delete trees[3];
console.log(3 in trees); // false
ÐÑли Ð²Ñ Ñ
оÑиÑе, ÑÑÐ¾Ð±Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива ÑÑÑеÑÑвовал, но имел знаÑение undefined, иÑполÑзÑйÑе знаÑение undefined
вмеÑÑо опеÑаÑоÑа delete
. Ð ÑледÑÑÑем пÑимеÑе, trees[3]
пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð½Ð°Ñение undefined, но ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¼Ð°ÑÑива вÑе еÑÑ ÑÑÑеÑÑвÑеÑ:
const trees = ["redwood", "bay", "cedar", "oak", "maple"];
trees[3] = undefined;
console.log(3 in trees); // true
ÐÑоблема кÑоÑÑбÑаÑзеÑноÑÑи
ÐеÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо ÑÑандаÑÑ ECMAScript оÑÑавлÑÐµÑ Ð¿Ð¾ÑÑдок иÑеÑаÑии по ÑвойÑÑвам обÑекÑов на ÑÑмоÑÑение ÑеализÑÑÑей ÑÑоÑонÑ, Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ñак, ÑÑо вÑе оÑновнÑе бÑаÑзеÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð¿Ð¾ÑÑдок иÑеÑаÑии, оÑнованнÑй на пÑинÑипе "ÑвойÑÑво добавленное в обÑÐµÐºÑ ÑанÑÑе идÑÑ ÑанÑÑе" (по кÑайней меÑе Ð´Ð»Ñ ÑвойÑÑв не наÑ
одÑÑиÑ
ÑÑ Ð² пÑоÑоÑипе). Ðднако, в ÑлÑÑае Ñ Internet Explorer, когда кÑо-нибÑÐ´Ñ Ð¸ÑполÑзÑÐµÑ delete
Ñ ÐºÐ°ÐºÐ¸Ð¼-либо ÑвойÑÑвом, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº некоÑоÑÑм неожиданнÑм ÑезÑлÑÑаÑам, заÑÑавлÑÑ Ð´ÑÑгие бÑаÑзеÑÑ Ð¾ÑказаÑÑÑÑ Ð¾Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑÑÑÑ
обÑекÑов, ÑакиÑ
как лиÑеÑÐ°Ð»Ñ Ð¾Ð±ÑекÑов, в каÑеÑÑве аÑÑоÑиаÑивнÑÑ
маÑÑивов. Ð Internet Explorer, когда знаÑение ÑвойÑÑва ÑÑÑановлено в undefined, поÑле ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑÑого ÑвойÑÑва, еÑли кÑо-нибÑÐ´Ñ Ð¿Ð¾Ð·Ð¶Ðµ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ ÑвойÑÑво Ñ Ñаким же именем, оно окажеÑÑÑ Ð² Ñвоей ÑÑаÑой позиÑии, а не в конÑе иÑеÑаÑионной поÑледоваÑелÑноÑÑи, как ожидаеÑÑÑ.
ÐоÑÑомÑ, еÑли Ð²Ñ Ñ Ð¾ÑиÑе ÑимÑлиÑоваÑÑ ÑпоÑÑдоÑеннÑй аÑÑоÑиаÑивнÑй маÑÑив в кÑоÑÑбÑаÑзеÑной ÑÑеде, вам пÑидÑÑÑÑ Ð»Ð¸Ð±Ð¾ иÑполÑзоваÑÑ Ð´Ð²Ð° оÑделÑнÑÑ Ð¼Ð°ÑÑива (один Ð´Ð»Ñ ÐºÐ»ÑÑей и один Ð´Ð»Ñ Ð·Ð½Ð°Ñений), либо поÑÑÑоиÑÑ Ð¼Ð°ÑÑив из обÑекÑов Ñ Ð¾Ð´Ð½Ð¸Ð¼ ÑвойÑÑвом и Ñак далее.
ÐнеÑние ÑÑÑлкиRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4