本文详解JavaScript中delete操作符的用法。delete可成功删除对象属性并返回布尔值,但无法删除已声明的变量、函数或数组本身。未声明的全局变量或对象属性可被删除。通过具体代码示例,解析不同数据类型在delete操作下的返回值及typeof结果,帮助开发者准确掌握删除操作的边界与限制。
delete操作符基础:删除对象属性
代码如下
var obj={
name: 'zhagnsan',
age: 19
}
delete obj.name //true
typeof obj.name //undefined
使用delete操作符可以移除对象的属性,该操作会返回一个布尔值以指示删除是否成功。
delete能否删除变量、函数与数组?
除了对象属性,delete还能用于删除其他类型的变量吗?
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
在Windows环境下,已声明的变量无法通过delete删除,而未声明的变量则可以被删除。
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
已声明的对象本身无法被删除,但对象内部的属性可以被删除。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。