为什么必须在body标签中初始化全局变量,而不是在header中初始化全局变量?
Why do you have to initialize global variables within the body tags and not the head
在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
相关文章:
- 使用名称初始化 ng-app 会禁用变量初始化
- 使用变量初始化数组:意外的令牌 +
- 使用变量初始化javascript数组
- 使用jQuery.when时进行了奇怪的变量初始化
- 使用angularjs范围变量初始化javascript变量
- 异步角度承诺和变量初始化
- JavaScript 变量初始化显示 NaN
- 使用静态变量初始化同一类中的变量
- JavaScript 中正确的“私有”变量初始化
- 角度 - 全局变量初始化一次 - 页眉中的示例用户名
- 角度变量初始化
- 对象变量初始化
- Snap SVG - 我可以使用多个变量初始化 snap.svg 指向标记中的不同 svg ID 吗?
- 使用 PHP 变量初始化选择标签
- JavaScript 在没有全局变量初始化值的情况下得到错误
- Javascript变量初始化
- AngularJS-$rootScope变量初始化失败
- Javascript 变量初始化语法
- 在变量初始化时运行代码
- 为什么这个变量初始化不对数字生效?