sha*_*hal 1 javascript google-chrome
当我加载页面时,我有一行:
<script>HUD = "hello";</script>,然后我打开页面,打开DevTools,转到控制台"并输入HUD- 我看到
VM331:1 Uncaught ReferenceError: HUD is not defined(…)
然后我重新加载页面,保持DevTools打开,然后再次进入HUD - 现在它存在并打印"你好"
<!DOCTYPE html>
<html>
<head lang="en">
<script>
var HUD = "hello";
console.log(HUD);
</script>
</head>
<body>
Open console and enter HUD - is it there?
</body>
</html>Run Code Online (Sandbox Code Playgroud)
运行代码段并以这种方式检查 - 有时HUD存在,有时则不存在.我想知道为什么...
这里的问题是这个无用的变量可能会被JavaScript引擎优化掉(控制台文档中提到了这种行为).
一些解决方案来修复它并防止其被删除:
window属性:window.HUD = "hello";(function(v){ if (!v) die(); })(HUD);这个更危险,因为更智能的引擎可以检测到它仍未真正使用)请注意,这可能不是一个真正的问题:一旦此变量开始有用(即它可能在代码中的某处使用),引擎将不再删除它,您将能够在控制台中看到它特技.
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |