容易混淆的概念(Easily confused concepts)
-
声明会提升,但赋值语句不会。
var test = 1;
function one(){
console.log(test) //undefined,Throws a ReferenceError in strict mode
var test = 2;
}one();
提升后:
var test = 1;
function one(){
var test;
console.log(test); //undefined,Throws a ReferenceError in strict mode
test = 2;
}one();
-
提升优先级
var one = 1;
function one(){
}
console.log(typeof(one)); //number,而不是function
提升后:(函数声明会提升)
function one(){
}
var one = 1;
console.log(typeof(one)); //number,而不是function