function exampleFunction(){
var theVariable = "Lol!";
var variable2 = Lol.toLowerCase();
console.log(theVariable);
delete theVariable; //to prevent bugs, I want to ensure that this variable is never used from this point onward.
console.log(theVariable); //This still prints "Lol!", even though I just tried to delete the variable.
}
在JavaScript中,是否可以防止在某个点之后在函数中使用变量?我已经尝试声明一个名为theVariable
的字符串,然后我尝试使用delete theVariable
删除该变量,但console.log(theVariable)
仍然会在该点之后打印theVariable
的值。
我尝试使用delete theVariable
使theVariable
从此时开始无法使用(为了防止我在不再需要时意外使用该变量),但它似乎没有那种效果。有没有办法解决这个限制?
答案 0 :(得分:5)
一种方法是限制其范围。由于JavaScript没有块范围,因此需要IIFE(或类似技术):
function exampleFunction(){
var variable2;
(function() {
var theVariable = "Lol!";
variable2 = Lol.toLowerCase();
console.log(theVariable);
})();
// theVariable is now out of scope, and cannot be referenced
}
答案 1 :(得分:2)
在这种情况下,您可以将值设置为undefined
,如theVariable = undefined
delete功能无法按预期工作
来自docs
删除操作符从对象中删除属性。
在这种情况下,theVariable
不是对象的属性,它是当前函数范围中的变量。
答案 2 :(得分:0)
您无法删除基本类型,只能删除对象。如果您不希望在某个点之后使用变量,只需查看您的代码,以便不使用它。不幸的是,JS没有块限定来限制变量的可见性。你必须手动检查这个。
或者,将值设置为undefined。