JavaScript delete 方法之(删除对象中的某个元素)

delete方法用于删除对象的指定元素(包括变量和函数).

示例(删除对象中的某个属性):

后台返回一个对象:

data: {total: 6, 法人: 1, 可公示: 2, 个人: 1, 国家类型: 1, 非国家类型: 1, 非公示: 0}

而我不需要total这个属性,需要把它删除

delete res.data.total; // true
// 打印 res.data
{法人: 1, 可公示: 2, 个人: 1, 国家类型: 1, 非国家类型: 1, 非公示: 0}

delete的一些特性:

  1. 不能删除具有 DontDelete 特性的元素,哪些成员具有 DontDelete 特性呢?

例如: var申明的变量,函数名申明的函数,对象的内置参数,函数的参数等;

// var 申明的变量
var x = 1;
alert(delete x); // false
alert(typeof x); // number
// 函数
function x(){}
alert(delete x); // false
alert(typeof x); // "function"
// 对象的内置参数(例如function的length属性,arguments属性)
function f(){
        alert(delete arguments); // false
        alert(typeof arguments); // "object"

        alert(delete f.length); // false
        alert(typeof f.length); // "number"
 }
f();
// 函数的参数
function f(param1){
     alert(delete param1); // false
     alert(typeof param1); // "number"
    }
 f(12);
// 可以删除 eval 中申明的元素
 eval('var x = 1');
 alert(delete x);  //true
 alert(typeof x); //undefined

 eval('function f(){}');
 alert(delete f);  //true
 alert(typeof f);  //undefined

2. delete 返回值 false 或 true

delete 仅在删除一个不能删除的成员时,才会返回false

而其他情况下,删除如不存在的成员,或删除成功也都会返回ture

也就是说 返回true 并不一定代表删除成功

alert(delete a); // true 
//a是一个未申明且不存在的变量。 delete 依然返回的是true 

猜你喜欢

转载自blog.csdn.net/m0_58293192/article/details/128819036
今日推荐