You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中delete操作符返回true及函数返回undefined疑问

delete操作符返回true的原因说明

delete 是JavaScript标准定义的一元操作符,本身就具备布尔类型的返回值,用来标识本次属性删除操作是否执行成功,不是仅执行删除操作不返回结果。

你代码中返回true的原因很明确:

  • 你通过对象字面量声明的user对象的name是普通自有属性,这类属性默认的configurable(可配置)描述符为true
  • 当delete操作的目标是对象可配置的自有属性时,删除操作会正常执行,同时返回true,因此console.log(delete user.name)输出了true。

补充:delete返回false的常见场景

  • 要删除的属性是对象的不可配置属性(configurable描述符为false)
  • 删除用var/let/const声明的变量、函数声明
  • 删除数组length等JS内置的不可配置属性

关于你提到的第二个输出undefined,原因你已经理解:removeName函数没有显式写return语句,JS中无return的函数执行后默认返回undefined,因此变量x赋值为undefined,打印结果就是undefined。


内容的提问来源于stack exchange,提问作者mixalis petros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:45:04