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

已聲明的對象不可刪除, 對象中的對象屬性可以刪除

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM