为什么变量';名称';首次使用[Javascript]后不需要初始化
每当我初始化一个名为“name”的变量时,它会在整个页面中保持其值 像这样: 页面1.html为什么变量';名称';首次使用[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(“您叫什么名字?”); 警报(名称
<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页所使用的。谢谢!这解释了一切!