为什么变量'name'在首次使用后不需要初始化[Javascript]

dvr*_*dvr 1 html javascript variables defined web

每当我初始化一个名为'name'的变量时,它都会通过页面保持其值.

像这样:

page1.html

<html>
<script>
    var name = prompt("What's your name?");
    alert(name);
</script>
    <a href='page2.html'> Page2</a>
</html>
Run Code Online (Sandbox Code Playgroud)

page2.html

<html>
   <script>
       alert(name);
   </script>
</html>
Run Code Online (Sandbox Code Playgroud)

因此,在两个页面中,变量名称保留了在第一页的提示中给出的值,两个页面提醒相同的事情,有人可以解释为什么会发生这种情况吗?

Dan*_*nka 5

您看到的行为不正常,几乎不会对任何其他变量起作用.name实际上是Javascript中的保留变量,这就是为什么你会看到有趣的行为.

Javascript中的所有变量都是window对象的属性.如果创建一个名为的变量age,您也可以在其中访问它window.age.window.name是当前浏览器窗口的一个特殊属性,允许为其指定名称,并且此值可以在页面之间保留.

如果您将变量的名称更改为age,它将返回到预期的工作状态 - 该变量在page2.html中将为空.

多一点 window.name