-1

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

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

</head>

不会初始化全局变量,而

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

将初始化变量。
是否有一个原因?

4

2 回答 2

11

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

没有区别。

但请确保在分配变量之后使用该变量,而不是之前。

于 2013-03-13T19:04:50.343 回答
0

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


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

//jk

于 2013-03-13T19:17:54.170 回答