js中delete详解

js有自己的垃圾回收机制,因此delete用的时候不是很多,但是了解一下也还是有好处的。

  1. 如果删除成功,返回true;反之,false;
  2. 如果试图删除不存在的变量, delete不会起任何作用(废话),但是返回true;
  3. delete只能删除对象自己的属性,不能删除其原型链上的属性

    function Person () {
    this.name = 'jim';
    }
    Person.prototype.height = '1.1';
    
    var a = new Person();
    
    a.name; // jim
    a.height; // height
    
    delete a.name; // true
    delete a.height; // true
    
    console.log(a.name); // undefined
    console.log(a.height); // 1.1
    
  4. 用var声明的变量不能从全局或者函数作用域删除

    4.1 全局作用域中的函数不能被delete, 不论是使用关键字声明还是使用函数表达式的
    4.2 隶属于某一对象的方法可以被delete

    var1 = 1;
    var var2 = 1;
    
    delete var1; // true
    delete var2; // false
    
    var obj = {
        func: function () {}
    }
    
    delete obj.func // true
    
  5. 使用let和const声明的变量不能从作用域范围被delete
  6. Non-configurable的属性不能被delete(可通过Object.defineProperty()来修改)

    var Employee = {};
    Object.defineProperty(Employee, 'name', {configurable: false});
    
    delete Employee.name;  // false
    
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScriptdelete关键字用于删除对象的属性或数组的元素。然而,delete关键字不能用于删除数组本身。引用提到,delete关键字返回一个布尔值,如果删除成功则返回true,否则返回false。如果试图删除不存在的变量,delete操作不会产生任何效果,但会返回true。在对象使用delete关键字可以删除对象自己的属性,但不能删除原型链上的属性。引用给出了一个例子,其delete a.name成功删除了对象a的name属性,而delete a.height则成功删除了对象a的原型链上的height属性。在块级作用域使用delete关键字也是无效的,如引用所示,delete a会返回false且不会删除变量a。同样地,内置对象的属性也不能被删除,如引用的例子所示,delete Math.E会返回false。然而,内置对象的方法可以被成功删除,如delete Math.abs会返回true。总之,delete关键字在JavaScript用于删除对象的属性或数组的元素,但不能删除数组本身,且不能在块级作用域使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [jsdelete详解](https://blog.csdn.net/liangtaox8/article/details/99830799)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [jsdelete操作符不能删除的情况(学习记录)](https://blog.csdn.net/jq233/article/details/105618703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值