Javascript变量范围:为什么每次刷新都会增加变量?

时间:2013-10-24 12:17:02

标签: javascript variables scope

<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 )?

1 个答案:

答案 0 :(得分:0)

name更改为n_ame,它会起作用:)

name是Chrome中的全局变量,因此刷新后不会重置