如何正确理解和掌握JavaScript程序的执行顺序?

avatar
作者
猴君
阅读量:0
JavaScript程序执行顺序包括:从上到下顺序执行,同步任务先执行,异步任务后执行,事件循环机制处理异步任务。

1. 变量的声明和引用

单元内容 描述
变量必须先声明后引用 在JavaScript中,必须在使用变量之前先声明它,如果先引用未声明的变量,会返回undefined。alert(myStr); // 弹出"undefined"; var myStr = "Hello World!";

2. 函数的声明和调用

单元内容 描述
定义式函数定义 浏览器对“定义式”函数进行预处理,类似于编译。
Fn1(); function Fn1(){ alert("Hello World!"); }
赋值式函数定义 浏览器不会对“赋值式”函数进行预处理,仅在调用时处理。
Fn2(); var Fn2 = function(){ alert("Hello wild!"); }

3. 代码块及js文件的处理

如何正确理解和掌握JavaScript程序的执行顺序?

单元内容 描述
代码块和文件独立扫描 浏览器对每个代码块或文件进行独立的扫描,然后按顺序执行全局代码。

4. 重复定义函数会覆盖前面的定义

单元内容 描述
函数重复定义 后面的函数定义会覆盖前面的函数定义,与变量的重复定义类似。
function fn(){ alert(1); } function fn(){ alert(2); } fn(); // 弹出:“2”

5. body的onload函数与body内部函数的执行

单元内容 描述
onload事件触发条件 body内部的函数会先于onload的函数执行。

6. JavaScript是多线程or单线程?

单元内容 描述
JavaScript单线程 JavaScript是单线程依次执行的。
fn1(); setTimeout(function(){},1000); fn2();

7. 回调函数

单元内容 描述
回调机制 JavaScript中的回调机制类似于操作系统中的“中断和响应”。
setTimeout(function(){ alert("我先调用"); },1000); alert("我后调用");

相关问题与解答

问题一:为什么变量必须先声明后引用?

答案:变量必须先声明后引用是因为JavaScript引擎需要预先知道变量的存在,以便为其分配内存空间,如果不先声明就引用,会导致变量未定义的错误。

问题二:为什么“定义式”函数会被预处理,而“赋值式”函数不会?

答案:这是因为“定义式”函数在页面加载时就被解析并存储在内存中,而“赋值式”函数则是在运行时才被解析并执行,这种区别导致了它们不同的执行顺序和行为。

各位小伙伴们,我刚刚为大家分享了有关“JavaScript 程序执行顺序问题归纳-javascript技巧”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!