delete操作符

delete操作符

delete操作符的作用

其用来删除对象属性或数组元素

例如:

    var obj = {
        name: '德洛丽丝'
    }
    console.log(obj.name);//'德洛丽丝'
    delete obj.name;
    console.log(obj.name);//undefined
    var arr = [1, 2, 3];
    console.log(arr[2]);//3
    delete arr[2];
    console.log(arr[2]);//undefined
    a = 10;
    console.log(a);//10
    delete a;
    console.log(a);//报错-a未被定义

注意:

1.删除数组元素后,数组的长度并不会改变,但是会在删除的位置留下一个‘洞’。且若再次访问,值为undefined

2.delete希望它的操作数是一个左值,如果不是左值,delete将不会做任何操作,同时返回true(
delete删除成功时返回true,失败时返回false)

delete不能删除的属性

1.内置属性与客户端属性不能删除

2.通过var语句声明的变量不能删除

    var a = 10;
    console.log(a);//10
    delete a;//false
    console.log(a);//10

3.通过function定义的函数和函数的参数不能被删除

    function test(){
        console.log('test');
    }
    test();//'test'
    delete test;//false
    test();//'test'
    function test(a){
        console.log(a);//100
        delete a;//false
        console.log(a);//100
    }
    test(100);

4.不能通过实例删除原型链上的属性(只能直接在原型链上删除才行)

5.不能删除不可配置属性

严格模式下的delete

严格模式下删除var声明的变量,函数,函数参数将会SyntaxError异常。只有操作数是一个属性访问表达式的时候才会正常工作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值