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
已聲明的對象不可刪除, 對象中的對象屬性可以刪除