如何取消设置 JavaScript 变量

要取消设置 JavaScript 变量,我们不能使用 delete 运算符,因为它只是从对象中删除属性而不能删除变量。

一切都取决于全局变量或者属性的定义方式。

如果属性是使用 let 创建的,则删除运算符无法取消设置它:

let someVar = 1; //用 let 创建, someVar 是一个变量
delete somevar; //返回 false
console.log(someVar); //someVar 仍然是 1

如果属性是在没有 let 的情况下创建的,运算符可以删除它:

someVar = 1; //不使用 let 创建, someVar 是一个属性
delete someVar; //返回 true
console.log(someVar); //报错, someVar 现在是没有定义

任何用 var 创建的属性都不能从全局作用域中删除,或者函数的作用域以及用 let 和 const 创建的属性也不能从它们定义的作用域中删除。
它们创建了不能被删除操作符删除的不可配置的属性。

delete运算符

delete 运算符用于从对象中删除属性。
如果不再有对同一属性的引用,它会自动释放。
除了属性是自己的不可配置属性时,运算符对所有情况都返回 true。
在这种情况下,在非严格模式下返回 false。

日期:2020-06-02 22:16:27 来源:oir作者:oir