当前位置: 首页 > Web前端 > HTML

浏览器工作原理与实践总结二

时间:2023-04-02 16:47:25 HTML

JavaScript在浏览器中的执行机制一、JavaScript变量提升、执行顺序showName()console.log(myname)functionshowName(){console.log('函数showName被执行')}以上代码执行结果有以下三个结论:在执行过程中,如果使用了未声明的变量,JavaScript执行会报错。在定义变量之前使用它不会导致错误并且函数将正确执行。在函数定义之前使用它,不会发生错误并且函数将正确执行。变量提升:指JavaScript引擎在JavaScript代码执行过程中,将变量声明部分和函数声明部分提升到代码开头的“行为”。变量提升后,变量会被设置一个默认值,也就是大家熟悉的undefined。JavaScript代码的执行流程实际上并没有改变变量和函数声明在代码中的位置,而是在编译阶段被JavaScript引擎放入内存中。一段JavaScript代码在执行前需要经过JavaScript引擎的编译。编译完成后,将进入执行阶段。大致流程可以参考下图:编译阶段:编译完成后会生成执行上下文和可执行代码。执行上下文是JavaScript执行一段代码时的运行环境。这个过程中有可变的环境对象,JavaScript引擎会编译声明以外的代码。对于字节码。2.JavaScript代码调用栈调用栈:一种用来管理函数调用关系的数据结构,后进先出。当JavaScript执行多个上下文时,JavaScript引擎通过栈的数据结构来管理它们。