Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么变量';名称';首次使用[Javascript]后不需要初始化_Javascript_Html_Variables_Web_Defined - Fatal编程技术网

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

为什么变量';名称';首次使用[Javascript]后不需要初始化,javascript,html,variables,web,defined,Javascript,Html,Variables,Web,Defined,每当我初始化一个名为“name”的变量时,它会在整个页面中保持其值 像这样: 页面1.html <html> <script> var name = prompt("What's your name?"); alert(name); </script> <a href='page2.html'> Page2</a> </html> var name=prompt(“您叫什么名字?”); 警报(名称

每当我初始化一个名为“name”的变量时,它会在整个页面中保持其值

像这样:

页面1.html

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

var name=prompt(“您叫什么名字?”);
警报(名称);
页面2.html

<html>
   <script>
       alert(name);
   </script>
</html>

警报(名称);

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

它不会在所有页面中保留其值,这两个页面也不会提醒相同的事情


页面中必须有其他代码将
name
设置为某个值。

全局
name
变量为。这是一个字符串,在相同的浏览上下文中,它确实会在页面加载时保持不变-如果在新选项卡中打开第二个页面,它将不再“工作”


若要避免这种情况,请对变量使用a,或者将代码包装为。

您看到的行为不正常,几乎对任何其他变量都不起作用
name
实际上是Javascript中的一个保留变量,这就是您看到有趣行为的原因

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

如果将变量的名称更改为
age
,它将恢复正常工作——变量在page2.html中为空


这不应该发生。加载新页面时,所有变量都会重置。您是否通过iframe访问page2.html?很可能,在
page2.html
中,当它发出警报时,是否发出警报但未显示任何消息?这是您的全部代码,还是只是其中的一部分?它无法发出与在page1中初始化的值相同的警报。您可能会收到警报,但其中没有文本。如果您在第2页中收到带有指定文本的警报,而没有在那里初始化它,那么您肯定已经在其他地方定义了它,这是第2页所使用的。谢谢!这解释了一切!