一个应用程序中有多个javascript文件

一个应用程序中有多个javascript文件,javascript,Javascript,我不知道该怎么问,但我只是想了解一些情况 如果我在应用程序中包含多个JavaScript文件,那么页面/应用程序如何查看所有JS代码。所有文件中的所有JS是否都成为一个大JS文件 如果一个JS文件有一个变量foo=true和另一个JS文件有foo=false,那么foo的范围是什么?它是它所在脚本的本地版本,还是在“所有”js代码中都可以看到 谢谢你的见解 是的,在大多数情况下,这就像只有一个文件一样,通过按导入顺序连接所有文件来构建 区别在于: “严格使用”(假设存在)仅对每个文件有效 浏览

我不知道该怎么问,但我只是想了解一些情况

如果我在应用程序中包含多个JavaScript文件,那么页面/应用程序如何查看所有JS代码。所有文件中的所有JS是否都成为一个大JS文件

如果一个JS文件有一个变量
foo=true
和另一个JS文件有
foo=false
,那么
foo
的范围是什么?它是它所在脚本的本地版本,还是在“所有”js代码中都可以看到


谢谢你的见解

是的,在大多数情况下,这就像只有一个文件一样,通过按导入顺序连接所有文件来构建

区别在于:

  • “严格使用”(假设存在)仅对每个文件有效
  • 浏览器获取10个小文件要比获取一个大文件慢得多,这就是为什么构建大型应用程序的js开发人员通常将所有文件串联(并经常缩小)以用于生产

    • 脚本共享的唯一东西是全局范围;单独的部分不会成为一个大文件

      例如,您不能这样做:

      <script type="text/javascript">
      function hello() {
      </script>
      <script type="text/javascript">
      }
      </script>
      
      
      函数hello(){
      }
      

      在一个
      中的
      'use strict'
      不会对所有的
      应用严格模式。

      如果在一个文件中定义,而不使用
      var

      foo=true

      它将是一个全局变量,当它执行
      foo=false

      如果在页面上明确定义了所有脚本,则它们将共享相同的全局命名空间。要为变量创建局部范围,必须将其包装在
      函数中

      请参见本问题中提供的解释:

      为了方便地处理多个JavaScript文件并保持全局范围最小,同时允许不同的脚本共享信息,我建议您尝试使用RequireJS(),它是一个JavaScript文件和模块加载程序。它将处理您可能有的任何文件依赖性,并将异步加载它们。它还可以让您轻松地在不同的模块/文件之间传递变量,而不必将它们公开到全局范围


      还有其他文件/模块加载器。请参阅:

      一个警告。。。JavaScript文件的顺序很重要。如果您在第二个文件中声明
      foo=true
      ,并尝试在第一个文件中引用它,它将看不到它。+1正确且快速的回答@LifeInGrey他提到“在导入的顺序中”@LifeInGrey-除非引用它的尝试发生在一个直到第二个文件被处理后才被调用的函数中。事实上,我的警告有一个警告:P。但我只是指出,变量传递可能在100%的时间内不起作用。这是一件小事。仍然对答案投了赞成票,因为它是非常描述性和正确的。感谢所有的答复。非常感谢--JC这不是真正的问题。@Roy抱歉,我会详细说明