为什么必须在body标签中初始化全局变量,而不是在header中初始化全局变量?

Why do you have to initialize global variables within the body tags and not the head

本文关键字:全局变量 初始化 header 标签 为什么 body      更新时间:2023-09-26

在javascript中,初始化全局变量时,

<head>
      <script type='text/javascript'>
       var globalvar = 'asdf';
      </script>
</head>

不会初始化全局变量,而

 <body>
    <script type='text/javascript'>
       var globalvar = 'asdf';
    </script>
 </body>

将初始化变量。
这有什么原因吗?

这是完全错误的:您在头部初始化的变量与另一个变量一样是全局的。

没有差别。

更新:javascript或ECMAscript标准可以在http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf找到我下面的答案可能不完全正确,至少从标准的角度来看是不正确的。这是因为标准没有指定onLoad事件应该何时发生,或者onLoad发生时如何设置全局环境。


与您定义globalvar的位置没有区别。但是,根据您使用的web浏览器的不同,您可能需要等待页面加载事件发生后才能使用该变量。因此,一般建议不要在页面加载事件发生之前执行任何访问全局变量的javascript代码。要在页面加载时获得通知,您可以使用<BODY onLoad="alert('hello world!')">之类的东西。当文档加载完成时,浏览器将触发onLoad。

//jk