JavaScript中delete运算符的行为与限制详解

作者:代码拾荒

时间:2026-10-27

浏览:604

本文解析JavaScript中delete运算符的具体行为。该运算符用于删除对象的属性、数组元素或变量,成功返回true,失败返回false。需注意,使用var声明的变量、核心内置属性及客户端属性通常无法删除。若运算数非属性或变量,标准规定仍返回true。

文章目录

delete运算符的基本行为与返回值

delete运算符用于移除指定运算数所对应的对象属性、数组元素或变量。若删除操作执行成功,该运算符返回true;若运算数无法被删除,则返回false。

并非所有属性和变量都能通过delete删除。部分内部核心属性及客户端属性属于不可删除范畴。此外,通过var语句声明的用户定义变量同样无法被删除。

当delete操作的运算数指向一个不存在的属性时,结果仍为true。根据ECMAScript标准规定,若delete运算的运算数并非属性、数组元素或变量,其返回值强制为true。

这一行为确保了在处理非标准目标时不会抛出错误,而是返回布尔值true。

代码示例:属性、变量与值的删除测试

var o = {x:1, y: 2}; //定义一个变量

delete o.x; //删除o对象的x属性,返回true

typeof o.x; //返回undefined

delete o.x; //返回true

delete o; //不能删除变量

delete 1; //不能删除整型的变量值1

x = 1; //

delete x; //可以删除,return true

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章