阅读量: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文件的处理
单元内容 | 描述 |
代码块和文件独立扫描 | 浏览器对每个代码块或文件进行独立的扫描,然后按顺序执行全局代码。
|
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技巧”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!