delete在js里为引用删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delete在js里为引用删除相关的知识,希望对你有一定的参考价值。

delete 运算符
从对象中删除一个属性,或从数组中删除一个元素。

delete expression
expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。

说明
如果 expression 的结果是一个对象,且在 expression 中指定的属性存在,而该对象又不允许它被删除,则返回 false。
在所有其他情况下,返回 true。

example:
var arr = [1,2,3];
var arrItem = arr[1];
var obj = {a:‘a‘, b:‘b‘};
var objItem = obj.a;

delete arr[1];
alert(arrItem);//这里输出2
alert(arr[1]);//这里输出undefined
alert(arr.length);//这里输出3

delete obj.a;
alert(objItem);//这里输出a

//说明:可见,delete删除的仅仅是数组或对象中对其成员的引用
//特别需要注意的是,数组delete后length仍然不变

var objKeys = [];
for(var k in obj)objKeys.push(k);
alert(objKeys);//这里输出b
//说明:delete删除对象成员后,无法被遍历

以上是关于delete在js里为引用删除的主要内容,如果未能解决你的问题,请参考以下文章

js----delete关键字

js小知识 delete操作符

JS-[delete用法]

当引用表中没有匹配的记录时,delete语句如何与REFERENCE约束冲突?

JS delete 用法(删除对象属性及变量)

ON DELETE在自引用关系上设置NULL