浅谈javascript的执行顺序

浅谈javascript的执行顺序
虽然现代浏览器可以并行下载Javascript(部分浏览器),但考虑到Javascript的依赖性,它们的执行仍处于导入的顺序

本文记录了我在Javascript研究过程中所读和理解的一些内容,加深了记忆并记录下来,便于复习。

html文档中的执行顺序

JS代码执行的图像比较,用户可以直观地感受到执行。然而,JS代码的执行顺序是更复杂的。有时我们写JS代码和HTML,HTML文档在浏览器解析的过程是这样的:浏览器逐渐分析网页结构信息从顶部底部按文件flow.js代码也是HTML文件的一个组成部分作为嵌入式脚本。因此,js代码的执行顺序也按脚本标签的顺序来决定。

console.log(高级脚本);

文件

console.log(头文字);

console.log(脚本);

console.log(底部脚本);

还有一个外部js文件脚本,它被导入到脚本标记的SRC属性中。它还将按照语句的顺序执行,执行过程是文档加载的一部分。它不会被延迟,因为它是一个外部js文件。
/ /第一次加载b.js和执行代码里面

然后在下面的顺序执行代码

(1)console.log;

预编译

当JS引擎解析,这是预编译的所有声明的变量和函数

可变升
console.log(一); / /未定义
var a=1;
console.log(一); / / 1
preparsing功能
f(1);
函数f(){
(1)console.log;
};
详细说明:Javascript变量声明增强(提升)

块的执行代码

js是由块代码执行的,代码块是由标签分隔的代码段。
代码1
var a=1;
代码2
函数f(){
(1)console.log;
};

因为js的代码块执行。当浏览器解析HTML文档的流程,如果遇到一个标签,然后JS将代码到代码块被加载,然后执行它。当执行完成后,浏览器将继续解析西蒙HTML文档流,和JS准备处理下一个代码块。

有一个小的坑,因为js是通过块执行的,所以语法错误是通过调用JS块中的返回块声明的变量或函数来实现的,但是不同的块都属于全局范围,即块之间的变量和函数可以共享。
代码1
console.log(一);
(f);
代码2
var a=1;
函数f(){
(1)console.log;
};

因为js正在处理块中的代码,并遵循HTML文档流的解析顺序,所以在上面的栗子中会看到语法错误。但是,当加载了文档流之后,不会再次出现这个错误。
(在window.onload =功能){ / /初始化页面处理程序
代码1
console.log(一);
(f);
}
代码2
var a=1;
函数f(){
(1)console.log;
};

对于安全性,在初始化页面后,通常允许JS代码,从而避免某些网络速度对JS执行的影响。同时,也避免了HTML文档流对JS执行的限制。

总之,执行中的Javascript步骤如下:
1。首先读取第一段代码。
2。代码块的语法分析。如果出现语法错误,则直接执行第五步。
三.预编译的var变量的函数和函数的函数定义(赋值函数不是预编译)
4,执行代码块,错误是错误报告
5。如果有下一个代码块,请阅读下一个代码块,重复步骤2。
6。终点
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部