<html>
<head>
<script type='text/javascript'>
alert(name);
function init() {
name = parseInt(name) +1; // name is a local variable created by init
function displayName() { // displayName() is the inner function, a closure
alert (name); // displayName() uses variable declared in the parent function
}
displayName();
}
init();
</script>
</head>
<body>
Some Text
</body>
</html>
这是我简单的JavaScript代码。我只是复制/粘贴上面的代码并多次刷新以查看奇怪的输出。
每次刷新页面时,我都可以看到名称变量增加了1.
首次加载:提醒''和1
第二次加载:警报1和11
第三次加载:警报11和111
等等...
如果我关闭窗口或标签然后重新加载,它似乎正常工作。但是,再次,在同一窗口或选项卡中的第二次重新加载时,产生与上述相同的输出。
我的问题是:即使在刷新和多次刷新之后,变量name
的原因和方式也是如此( F5 或 Ctrl + Shift + - [R )?
答案 0 :(得分:0)
将name
更改为n_ame
,它会起作用:)
name
是Chrome中的全局变量,因此刷新后不会重置