通过delete操作符, 可以实现对对象属性的删除操作, 返回值是布尔值
var obj = {
name: 'Amy',
age: 10
}
delete obj.name
console.log(typeof obj.name); //undefined
console.log( delete obj.name); // true
可以删除其他东西
1.删除变量
var name ='Amy' //已声明的变量
delete name;
console.log(typeof name) //undefined
console.log(delete name); //true
age = 10 //未声明的变量
delete age
console.log(typeof age) //String undefined
console.log(delete age); //true
this.val = 'ccc' //window下的变量
delete this.val
console.log(typeof this.val) //undefined
console.log(delete this.val); //true
2.删除函数
var fn = function(){} //已声明的函数不可删除
delete fn
console.log(typeof fn) //function
console.log(delete fn) //false
as = function(){} //未声明的函数可以删除
delete as
console.log(typeof as) //undefined
console.log(delete as) //true
3.删除数组
var arr1 = ['1','2','3'] ///已声明的数组不可删除
delete arr1
console.log(typeof arr1) //object
console.log(delete arr1); //false
arr2 = ['1','2','3'] //未声明的数组可以删除
delete arr2
console.log(typeof arr2) //undefined
console.log(delete arr2); //true
var arr3 = ['1','2','3'] //已声明的数组
delete arr3[1]
console.log(arr3) //['1','empty','3']
console.log(delete arr3[1]); //true
4.删除对象
已声明的对象不可删除, 对象中的对象属性可以删除
var one = {
name: 'amy',
age: 10,
address: 'cn',
hobby: {
draw: 'cartoon',
music: 'piano'
}
}
delete one
console.log(typeof one) //object
console.log(delete one) //false
var two = {
name: 'Rose',
age: 10,
address: 'cn',
hobby: {
sport: 'tennis',
dance: 'classic'
}
}
delete two.hobby
console.log(typeof two.hobby) //undefined
console.log(delete two) //false