javascript在页面中的顺序重要吗?

javascript在页面中的顺序重要吗?,javascript,jquery,Javascript,Jquery,只要我从jquery$().ready()中调用javascript代码;函数我不应该访问javascript代码中声明的所有变量吗 我有来自.js文件和内联的代码 我试图访问一个变量,它说它没有定义,但当我访问viewsource时,我可以看到该变量。是的,您可以访问所有顶级变量。但是您正在寻找的一个也可以使用dom就绪事件定义,即使它是一个窗口变量,处理程序也可以在您的事件之后启动。或者它位于动态注入的JavaScript文件中 您不一定有权访问该变量。它实际上取决于变量的范围以及相对于使用

只要我从jquery$().ready()中调用javascript代码;函数我不应该访问javascript代码中声明的所有变量吗

我有来自.js文件和内联的代码


我试图访问一个变量,它说它没有定义,但当我访问viewsource时,我可以看到该变量。

是的,您可以访问所有顶级变量。但是您正在寻找的一个也可以使用dom就绪事件定义,即使它是一个窗口变量,处理程序也可以在您的事件之后启动。或者它位于动态注入的JavaScript文件中

您不一定有权访问该变量。它实际上取决于变量的范围以及相对于使用它的位置定义它的位置。如果变量是在单独的ready()块中定义的,则如果该ready块在引用它的块之后运行,则即使它在全局空间中,您也可能无法访问它。要可用,定义变量的代码需要在引用它的代码之前执行,并且它需要在相同的范围内。

否,您应该始终按照需要的顺序加载Javascript。如果您正在使用一些jQuery插件,那么您应该在这些插件之前加载jQuery,因为它们可能会在您不知道的情况下实例化使用jQuery对象的东西

对于我的web应用程序,我按照以下顺序加载Java脚本:

  • 外部库(jQuery、Prototype、ExtJS)
  • 基于这些库构建的插件
  • 我的自定义Java脚本

我希望我的回答是有帮助的。

你是对的,访问其他文件中的变量应该没有问题。可能存在范围问题或简单的打字错误。您试图访问的变量在哪个范围内,您试图在哪个范围内使用它?

javascript的顺序确实很重要。Javascript在页面中以线性方式执行,因此,如果您有两个
标记,如下所示:

<script src="test1.js"></script>
<script src="test2.js"></script>

将首先加载并运行
test1.js
,然后加载并运行
test2.js
。在
test1.js
中全局声明的任何内容都可以在第二个脚本中访问,但不能反过来访问

这样做的一个副作用是,脚本在加载时也会阻塞,因此如果
test1.js
需要很长时间才能加载,您会发现这会降低页面加载时间。这就是为什么建议将任何不需要的javascript放在页面底部的原因,这样在javascript加载减慢速度之前,几乎所有内容都会显示出来


在jquery中的“on ready”事件中,理论上您应该可以访问作为DOM一部分加载的任何内容,因为从技术上讲,在DOM结构完全构建之前不应该触发此操作。

您可以在页面的任何部分设置变量值,但在函数代码之前在页面顶部声明变量值会更容易


乔希

检查这里。有一个答案,解释了很多