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

 

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

 

var obj={ name: ‘zhagnsan‘, age: 19 }delete obj.name //truetypeof obj.name //undefined

 

  • 通过delete操作符, 可以实现对对象属性的删除操作, 返回值是布尔
  • 如果你试图删除的属性不存在,那么delete将不会起任何作用,但仍会返回true
  • 如果对象的原型链上有一个与待删除属性同名的属性,那么删除属性之后,对象会使用原型链上的那个属性(也就是说,delete操作只会在自身的属性上起作用)
  • 当一个属性被设置为不可设置,delete操作将不会有任何效果,并且会返回false。

其他场景

1.变量

var name =‘zs‘ //已声明的变量delete name //falseconsole.log(typeof name) //Stringage = 19 //未声明的变量delete age //truetypeof age //undefinedthis.val = ‘fds‘ //window下的变量delete this.val //trueconsole.log(typeof this.val) //undefined

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

2.函数

var fn = function(){} //已声明的函数delete fn //falseconsole.log(typeof fn) //functionfn = function(){} //未声明的函数delete fn //trueconsole.log(typeof fn) //undefined

3.数组

var arr = [‘1‘,‘2‘,‘3‘] ///已声明的数组delete arr //falseconsole.log(typeof arr) //objectarr = [‘1‘,‘2‘,‘3‘] //未声明的数组delete arr //true console.log(typeof arr) //undefinedvar arr = [‘1‘,‘2‘,‘3‘] //已声明的数组delete arr[1] //trueconsole.log(arr) //[‘1‘,‘empty‘,‘3‘] 

4.对象

var person = { height: 180, long: 180, weight: 180, hobby: { ball: ‘good‘, music: ‘nice‘ }}delete person ///falseconsole.log(typeof person) //objectvar person = { height: 180, long: 180, weight: 180, hobby: { ball: ‘good‘, music: ‘nice‘ }}delete person.hobby ///trueconsole.log(typeof person.hobby) //undefined

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

 

相关文章