不确定如何问这个问题,但我只是在寻找一些见解/信息。
如果我在我的应用中包含多个JavaScript文件,页面/应用程序如何查看所有JS代码。所有文件中的所有JS都成为一个大的JS文件
如果一个JS文件有变量foo=true;
而另一个JS文件有foo=false
,那么foo
的范围是多少?它所在的脚本是本地的还是在“全部”js代码中看到它?
感谢您的任何见解。
答案 0 :(得分:2)
是的,在大多数情况下,就像只有一个文件一样,通过按照导入顺序连接所有文件而构建。
差异:
"use strict";
(假设它存在)仅对每个文件有效答案 1 :(得分:0)
脚本共享的唯一内容是全局范围;单独的部分不会成为一个大文件。
例如,你不能这样做:
<script type="text/javascript">
function hello() {
</script>
<script type="text/javascript">
}
</script>
一个'use strict'
中的<script>
不会对所有这些应用严格模式。
答案 2 :(得分:0)
如果您在一个文件中定义,而不使用var
:
foo = true;
它将是一个全局变量,当它foo = false
如果在页面上明确定义了所有脚本,它们将共享相同的全局命名空间。要为变量创建本地范围,您必须将其包装在function
中。
请参阅此问题中提供的说明:What is the scope of variables in JavaScript?
为了轻松处理多个JavaScript文件并保持全局范围最小化,同时允许不同的脚本共享信息,我建议您尝试RequireJS(http://requirejs.org/),它是一个JavaScript文件和模块加载器。它将处理您可能具有的任何文件依赖性,并且它将异步加载它们。它还使您可以轻松地在不同模块/文件之间传递变量,而无需将它们暴露给全局范围。
还有其他文件/模块加载器。请参阅:http://www.netmagazine.com/features/essential-javascript-top-five-script-loaders