将变量放在另一个js文件范围内的一个js文件中的最简单方法是什么。之前已经问过这个问题,并给出了答案。但是我不满意,因为(1)我的解释并不简单,(2)我的解决方案也不简单。一个答案是“只要在外部脚本调用全局变量之前将其置于全局范围内”。OP询问“如何将全局变量放入全局范围?”,但没有直接答案。
所以我有:
test1.js
var a = true;
test2.js
alert("a is " + a);
console.log("a is " + a);
和
test.html
<html>
<body>
<h1>Test</h1>
</body>
<script src="js/test1.js"></script>
<script src="js/test2.js"></script>
</html>
没有警报出现,并且控制台记录ReferenceError: a is not defined
。
使变量a
在中可用的最简单方法是什么test2.js
?
好的,这就是发生的事情。
发问者的编辑器出现故障,导致文件test1.js
为空白。因此,该代码var a = true
永远不会运行。
更多详细信息:修复所有问题后,代码将按预期工作。由于所有代码都已经在全局范围内(例如:不在a内function() {}
),因此var a = true
声明了一个a
初始值为的全局变量true
。
只要其中的代码在代码test1.js
运行正常之前就已运行test2.js
。请记住,这意味着代码的运行顺序与众不同。在这种情况下,它仅取决于文件在文件中列出的顺序test.html
。这是因为即使浏览器可能在完成test2.js
之前异步完成加载test1.js
,但它知道文件的指定顺序并按该顺序读取代码。
别忘了孩子:全局变量通常是不好的,如果您真的觉得有必要使用它们,请重构代码,直到您改变主意了:)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句