什么时候执行JavaScript?

什么时候执行JavaScript?,javascript,execution,Javascript,Execution,假设我在html主体的顶部包含一个脚本,它不定义任何函数或将任何触发器附加到任何内容。它只是有一些简单的老代码,比如 var x = 0; while (x < 4){ x++; } var x=0; 而(x

假设我在html主体的顶部包含一个脚本,它不定义任何函数或将任何触发器附加到任何内容。它只是有一些简单的老代码,比如

var x = 0;
while (x < 4){
 x++;
}
var x=0;
而(x<4){
x++;
}

这就是整个剧本。尽管它不接受任何输入或给出任何输出,但何时执行?与所有其他脚本一样,它将在HTML解析器遇到
节点时执行。

与所有其他脚本一样,它将在HTML解析器遇到
节点时执行。

脚本块是按从上到下的顺序执行的,因此如果它在页面顶部,它将首先执行。

脚本块是按从上到下的顺序执行的,因此如果它在页面顶部,它将首先执行。

,如果它位于最顶端,那么它将在HTML呈现之前?@Aerovistae:它必须仍然位于它有效的位置,例如在
头部内部
。但是是的,它将在解析例如
body
之前执行。这就是为什么此时不能访问
body
中的DOM元素(它们还不存在)。好的,明白了。@Aerovistae:是的。甚至在解析其余HTML并在DOM中可用之前,除非脚本在函数中,否则它仅在调用函数时执行。这也意味着,如果解析器在调用之前没有读取函数,它将不会执行。因此,如果它位于最顶端,它将在HTML呈现之前执行?@Aerovistae:它必须仍然位于有效的位置,例如在
头部
内。但是是的,它将在解析例如
body
之前执行。这就是为什么此时不能访问
body
中的DOM元素(它们还不存在)。好的,明白了。@Aerovistae:是的。甚至在解析其余HTML并在DOM中可用之前,除非脚本在函数中,否则它仅在调用函数时执行。这也意味着,如果解析器在调用函数之前没有读取该函数,它将不会执行。