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