解决这个问题的简单方法是将任何不想在全局范围内使用的代码都封装在立即调用的函数表达式(IIFE)中。函数作用域中分配的所有变量在函数结束时都会被解除分配:
(function() {
// Put your code here...
})();
了解更多关于IIFEs的信息:https://en.wikipedia.org/wiki/Immediately-invoked_function_expression
[更新]
在ES6中,您可以使用块级作用域(只要使用let
而不是var
):
{
// Put your code here...
}
了解更多关于块级作用域的信息:http://exploringjs.com/es6/ch_core-features.html#sec_from-iifes-to-blocks
data = {}; data.name = 'Bob';
。至少那样你只需要做 delete data;
。 - sdgluck清除控制台并不会清除内存中的变量,而只是清除了用户界面中的数据。
重新加载页面可以清除控制台数据。我希望这对你有所帮助,因为你提到正在测试和学习 JavaScript。
希望能够帮到你!
Chrome开发者工具已经发生了很多变化。delete name
并不能起到帮助作用;
//for example if you have declared a variable
const x = 2;
//Now sometime later you want to use the same variable
const x = 5; // you will get an error
//if you try to delete it you will get false
delete x;
但是在控制台仍然打开的情况下重新加载页面,将会刷新控制台上下文环境,现在x
不可用,您可以重新定义它。
实际上,这个问题是有解决办法的。如果你进行硬刷新,即按下 control + shift + r,那么控制台中的值就会完全清除,你就可以重新实例化相同的变量和函数等。
检查
),一两秒后,您将获得硬刷新的选项。硬刷新将清除所有存储的变量。delete name;
我认为清除已定义变量的最佳方法是:
window.location.reload();
它会自动一次性删除所有已声明的变量。看起来控制台历史记录可以通过右键上下文菜单清除。
clear()
:清除控制台输出区域。" - epascarelloname
变量] - Bergi