Chrome 控制台清除赋值和变量

IT技术 javascript google-chrome-devtools
2021-02-25 17:43:45

我正在学习 JavaScript,并在 Chrome 控制台中进行了大量测试。即使我清除了控制台,或者使用我在其他线程 ( localStorage.clear()) 中看到的任何命令,我分配的任何变量仍然会显示。

例如,如果我做类似的事情 var name = "Bob";

在此处输入图片说明

我清除并关闭控制台,重新打开它,然后查找 的值name,它仍然是Bob

在此处输入图片说明

清除这些的最佳方法是什么?

6个回答

此问题的一个简单解决方案是将您不需要的任何代码包装在立即调用的函数表达式 (IIFE) 中的全局范围内。当函数结束时,在函数作用域中分配的所有变量都会被释放:

(function() {

    // Put your code here...

})();

有关 IIFE 的更多信息: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

我投票赞成你的答案,因为尽管它没有回答问题,但这是一个很酷的解决方案:)
2021-05-14 17:43:45

从控制台清除数据的最简单方法是刷新页面

在开发者控制台中声明任何变量或函数时,您所影响的是全局执行上下文,对于 Web 浏览器来说是window.

当您clear()使用控制台时,您告诉 Chrome 删除这些操作的所有可见历史记录,而不是清除您附加到的对象window

你是对的,刷新不起作用 - 我以前从未注意到这种行为。您可以将所有数据附加到一个对象,例如data = {}; data.name = 'Bob';至少那时你只需要做delete data;
2021-04-23 17:43:45
Chrome 的控制台似乎非常不一致。如果我使用 about:blank 页面刷新,它似乎清除了变量......但有时不会。似乎总是有效的是关闭并重新打开浏览器。那好吧。现在已经足够好了。
2021-04-26 17:43:45
var、let 和 const 创建无法使用 delete 运算符删除的不可配置属性。JavaScript delete 操作符从对象中删除一个属性;如果不再持有对同一属性的引用,它最终会自动释放。
2021-05-01 17:43:45
重新加载页面并没有为我清除它。删除姓名;虽然有效。我宁愿有一种方法可以完全清除牌组,而不必删除个别作业。我不确定为什么刷新不起作用。这似乎是一个流行的答案。
2021-05-08 17:43:45
现在刷新页面会清除所有变量分配。
2021-05-13 17:43:45

清除控制台不会清除内存中的变量,而只是清除用户界面中的数据。

重新加载页面会清除控制台数据。我希望这应该没问题,因为您提到您只是在测试和学习 javascript。

希望有帮助!

这可能是最好的答案,而不必一一删除每个变量。
2021-04-26 17:43:45
“重新加载页面会清除控制台数据。” 我找不到提到这种行为的文档。你怎么知道的 ?
2021-05-21 17:43:45

只需重新加载具有清晰历史记录和旧命令执行的新上下文

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不可用,您可以重新定义它。

我认为清除定义变量的最佳方法是:

window.location.reload();

它会立即自动删除所有声明的变量。