JS中delete操作符详解:删除对象属性、变量与函数的行为差异

作者:函数茶馆

时间:2026-10-23

浏览:254

本文详解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

已声明的对象本身无法被删除,但对象内部的属性可以被删除。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章