【问题标题】:Is it possible to delete a variable declared using const?是否可以删除使用 const 声明的变量?
【发布时间】:2023-04-05 00:24:01
【问题描述】:

给定

const localName = "local_name";
delete localName; // true
console.log(localName); // "local_name"

是否可以删除使用const 声明的变量?

【问题讨论】:

标签: javascript


【解决方案1】:

delete 用于从对象中删除属性。

delete foo;

将尝试从全局对象中删除属性foo。声明的变量永远不能用delete 删除(无论您使用constlet 还是var),也没有其他方法可以删除“变量”(绑定)(see @T.J.'s comment for some more details)。

相关:How to unset a JavaScript variable?

【讨论】:

  • (我知道知道这一点,但对于潜伏者......)有趣的是,原因你不能删除constletclass 来自全局范围和 delete 与您不能从全局范围中删除 var 的原因不同,尽管规范决策的基本动机大致相同(我怀疑)。但是因为你不能 delete... :-) 你不能使用 delete 从全局对象中删除 constletclass,因为它们不是 首先在全局对象上! (而全局 var 是,但它不可删除。)
  • 是的,我的假设是即使 const 等被添加到全局对象中,也不会被允许,就像 var 一样。
  • @FelixKling 是否得出结论,const 声明的变量无法更改?
  • @guest271314:这就是为什么它是const :)
  • @guest271314:只是范围:const foo = 42; (function() { const foo = null; console.log(foo); }());
猜你喜欢
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 2021-08-09
  • 2019-04-01
  • 1970-01-01
相关资源
最近更新 更多