我正在学习 JavaScript,并且一直在 Chrome 控制台中进行大量测试。即使我清除控制台,或使用我在其他线程中看到的任何命令 ( localStorage.clear()
),我分配的任何变量仍然会显示。
例如,如果我做类似 var name = "Bob";
我清除并关闭控制台,重新打开它,然后查找 name
的值,它仍然是 Bob
。
清除这些的最佳方法是什么?
原文由 spex5 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在学习 JavaScript,并且一直在 Chrome 控制台中进行大量测试。即使我清除控制台,或使用我在其他线程中看到的任何命令 ( localStorage.clear()
),我分配的任何变量仍然会显示。
例如,如果我做类似 var name = "Bob";
我清除并关闭控制台,重新打开它,然后查找 name
的值,它仍然是 Bob
。
清除这些的最佳方法是什么?
原文由 spex5 发布,翻译遵循 CC BY-SA 4.0 许可协议
此问题的一个简单解决方案是将全局范围内不需要的任何代码包装在立即调用的函数表达式 (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
原文由 pjivers 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
从控制台清除数据的最简单方法是 刷新页面。
在开发人员控制台中声明任何变量或函数时,您所影响的是 _全局执行上下文_,对于 Web 浏览器来说是
window
。当您
clear()
控制台时,您告诉 Chrome 删除这些操作的所有 可见 历史记录,而不是清除您附加到的对象window
。