Js中的delete关键字

本文详细解析了JavaScript中delete关键字的使用方法及注意事项,包括如何删除对象属性、数组元素和全局变量,以及在不同场景下delete操作的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

delete关键字的作用:

  • 删除对象的属性 语法:delete 对象.属性
  • 返回值类型为布尔值(true / false),删除成功返回true

delete关键字的使用注意:

  • 也可以用于删除数组元素
  • 删除未使用var/let/const关键字声明的全局变量(直接定义在window上面的属性)
  • var、let、const创建的属性不能被delete操作删除。
  • 删除对象中不存在的属性或数组不存在的元素,返回值是true
  • delete操作只会在自身的属性上起作用,删除对象的原型对象中的属性(不能删除),返回值是true
  • 删除对象不可配置属性,非严格模式返回 false,严格模式下直接报错

使用:

a = 1
delete a    // true


var b = 1
delete b    // false,这里使用let、const声明同样无法删除


var obj = {
    name: 'zh',
    age: 23
}
delete obj.age    // true
delete obj.weight    // true,删除不存在的属性返回true


var arr = ['Mary', 'Bob', 'Lisa']
delete arr[1]    // true,这里删除了数组元素,但是数组长度不变,只是置空了index为1的元素
delete arr[5]    // true


var obj = {}
Object.defineProperty(obj, 'a', {
  value: 1,
  configurable: false
})
delete obj.a // false
// 严格模式下直接报错,Uncaught TypeError...


function Person() {
    this.age = 18;
}
Person.prototype.name = "Bob";
var p1 = new Person();
  
delete p1.name;    // true,但是此属性是原型对象上的,并未删掉,只能删掉对象自身属性
delete Person.prototype.name    // true,删掉了原型对象上的name属性

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值