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

Javascript Variable Scope: Why variable is increased on every refresh?

本文关键字:变量 增加 刷新 范围 为什么 Javascript      更新时间:2023-09-26
<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
等等...

如果我关闭窗口或选项卡,然后重新加载,它似乎可以正常工作。但是,同样,在同一窗口或选项卡中第二次重新加载时,会产生与上述相同的输出。

我的问题是:为什么以及如何在刷新和多次刷新(F5Ctrl+Shift+R)后变量 name 可用?

name更改为n_ame,它将:)工作

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