前言
相信学习前端知识的小伙伴们,一旦去考究JS底层的知识,都被一些变量声明提升、函数声明提升搞得醍醐灌顶。到最后,再去想一段JS代码究竟是什么是怎样的运行顺序?仍然是模糊不清的。接下来,我将带领大家用简单好理解的、具体的步骤去推敲和理解JS代码的运行顺序、每个阶段都干了什么?真正地打开JS世界的大门!
一起来思考
二话不说,先上代码。
var global = 100
function fn() {
console.log(global);
}
fn()
我们来假想一下,如果面试官问你:这段代码最后会输出什么?你大概率会觉得他在侮辱你,这不就是100吗;但如果面试官再问你,这个100怎么来的?你能回答的出来吗?
其实,面试官问你这个问题就是看你知不知道JS代码在运行时都发生了什么?
这个时候,很多小伙伴是不是已经开始想声明提升的问题了。用声明提升去思考代码也就是这样的顺序
var global //变量声明提升
function fn(){
//函数声明提升
console.log(global)
}
global = 100 //变量赋值
fn() //函数执行
看到这,很多小伙伴肯定会说不过如此。那么保持这个想法,看下面的代码
function fn(a) {
console.log(a); // function() {}
var a =