我无法在控制台中删除变量。
为什么?
答案 0 :(得分:1)
声明的变量是全球污染物。 一旦发射,它们将永远存在!
这就是为什么我总是争论并反对强制使用var声明 - 现在我们还有两个。 :)
一旦声明一个变量,该命名空间将永久保留。 未声明的全局变量,但是可以像任何其他对象属性名称值对一样被删除,这是一件好事。
我还编写了一种方法来测试某个命名空间是否已经被使用,或者是否存在于任何给定范围内以用于冗长的大代码项目。
在早些时候,重新声明相同的变量名称并没有用来引发硬故障错误 - 首先发出一个软通知,即变量名已经被声明[如果我的记忆能很好地服务我],但是稍后,并且由于无法删除已经声明的var的复杂性,需要重新声明在尝试上出现错误,以确保编码器理解变量名已经被声明并存在。
如果有人需要,可以在互联网上找到我的isNS( [ string ] );
。它的使用是如此多才多艺,会让你思考 - 为什么它还没有成为JavaScript规范的一部分?!
isNS( "myNewVariable"); >> Boolean true:false
它还有第二个参数,一个配置器 - 如果存在 - 可以修改返回值以更好地适合你的情况。
答案 1 :(得分:0)
我认为你的问题的答案在于这个主题 How to unset a JavaScript variable?
总结一下,您可以删除未使用var
或let
声明的变量,因为删除运算符会从对象中删除属性但无法删除变量