当我加载页面时,我有一行:
<script>HUD = "hello";</script>
,然后打开页面,打开DevTools,转到Console&#34;并输入HUD
- 我看到了
VM331:1 Uncaught ReferenceError: HUD is not defined(…)
然后我重新加载页面,保持DevTools打开,然后再次进入HUD - 现在它存在并打印&#34;你好&#34;
<!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>
&#13;
运行代码段并以这种方式检查 - 有时HUD存在,有时则不存在。我想知道为什么......
答案 0 :(得分:5)
这里的问题是这个无用的变量可能会被JavaScript引擎(this behavior is mentioned in the console documentation)优化掉。
修复它并防止其被删除的一些解决方案:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<ul class="list-group" style="margin:20px">
<li class="list-group-item row">
<a href="#" class="">
<span class="pull-left col-md-8 col-xs-8">
<span class="col-md-10" style="font-size: 16px;">Item 1</span>
<span class="col-md-1 pull-right glyphicon glyphicon-arrow-right"></span>
</span>
</a>
<span class="pull-right btn-group col-md-4 col-xs-4">
<button class="btn btn-xs btn-info">Edit</button>
<button class="btn btn-xs btn-warning">Delete</button>
</span>
</li>
<li class="list-group-item row">
<a href="#" class="">
<span class="pull-left col-md-8 col-xs-8">
<span class="col-md-10" style="font-size: 16px;">Item 2</span>
<span class="col-md-1 pull-right glyphicon glyphicon-arrow-right"></span>
</span>
</a>
<span class="pull-right btn-group col-md-4 col-xs-4">
<button class="btn btn-xs btn-info">Edit</button>
<button class="btn btn-xs btn-warning">Delete</button>
</span>
</li>
</ul>
属性:window
window.HUD = "hello";
(这个更危险,因为更智能的引擎可以检测到它仍未真正使用)请注意,这可能不是真正的问题:一旦这个变量开始变得有用(即它可能在代码中的某个地方使用),引擎就不会再删除它而你#&#&#t; 39;能够在没有技巧的情况下在控制台中看到它。