js代码解析原则:
首先js引擎在读取js代码时会进行两个步骤,第一个步骤是解释,第二个步骤是执行。
所谓解释就是会先通篇扫描所有的Js代码,然后把所有声明提升到顶端,第二步是执行,执行就是操作一类的。
1.变量声明提升
function show(){
console.log(x);// undefined
var x = 10;
}
上面代码解释后:
function show(){
var x;// 变量提升(把变量声明提升到当前执行环境的最顶端)
console.log(x);// 未赋值 undefined
x = 10;
}
2.函数声明提升
show();
function show(){
var x = 10;
console.log(x);
}
上面代码解释后:
function show(){ // 函数声明提升直接把整个函数提到执行环境的最顶端
var x = 10;
console.log(x);
}
show();
3.函数表达式
函数表达式 必须等到执行到它所在行时,才会从上而下开始解析函数表达式
console.log(show);// undefined
// show();// show is not a function
var show = function(){
console.log(x);// undefined
var x = 10;
}
网友评论