JS的 delete操作符 删除对象属性

JS的 delete操作符 删除对象属性

JS如何删除对象中的某一属性

var obj={

name: 'zhagnsan',

age: 19

}

delete obj.name //true

typeof obj.name //undefined

通过delete操作符, 可以实现对对象属性的删除操作, 返回值是布尔

如果你试图删除的属性不存在,那么delete将不会起任何作用,但仍会返回true

如果对象的原型链上有一个与待删除属性同名的属性,那么删除属性之后,对象会使用原型链上的那个属性(也就是说,delete操作只会在自身的属性上起作用)

当一个属性被设置为不可设置,delete操作将不会有任何效果,并且会返回false。

其他场景

1.变量

var name ='zs' //已声明的变量

delete name //false

console.log(typeof name) //String

age = 19 //未声明的变量

delete age //true

typeof age //undefined

this.val = 'fds' //window下的变量

delete this.val //true

console.log(typeof this.val) //undefined

已声明的变量不可删除, 未声明的变量可以删除

2.函数

var fn = function(){} //已声明的函数

delete fn //false

console.log(typeof fn) //function

fn = function(){} //未声明的函数

delete fn //true

console.log(typeof fn) //undefined

3.数组

var arr = ['1','2','3'] ///已声明的数组

delete arr //false

console.log(typeof arr) //object

arr = ['1','2','3'] //未声明的数组

delete arr //true

console.log(typeof arr) //undefined

var arr = ['1','2','3'] //已声明的数组

delete arr[1] //true

console.log(arr) //['1','empty','3']

4.对象

var person = {

height: 180,

long: 180,

weight: 180,

hobby: {

ball: 'good',

music: 'nice'

}

}

delete person ///false

console.log(typeof person) //object

var person = {

height: 180,

long: 180,

weight: 180,

hobby: {

ball: 'good',

music: 'nice'

}

}

delete person.hobby ///true

console.log(typeof person.hobby) //undefined

已声明的对象不可删除, 对象中的对象属性可以删除

相关推荐

蚂蚁宝藏信用卡体验报告真心不错!
365体育投注一直进不去

蚂蚁宝藏信用卡体验报告真心不错!

01-11 👁️ 5024
苹果、三星手机销量榜单揭晓:谁才是真正赢家?
365bet游戏下载网站

苹果、三星手机销量榜单揭晓:谁才是真正赢家?

01-22 👁️ 1643
银行卡改密码怎么改,银行卡改密码全攻略
365体育投注一直进不去

银行卡改密码怎么改,银行卡改密码全攻略

08-25 👁️ 1475
腾讯大王卡审核要多久.(腾讯大王卡审核一定成功的吗)