昨天理解了变量提升跟函数提升的概念。今天抽时间特意写下来把自己理解的内容梳理整合。
1、变量提升
所有的变量声明都会被提升到代码顶部。
比如
x=2;
console.log(x);
var x;
会被js解析为
var x;
x=2;
console.log(x);//2
2、函数提升
函数是一等公民,JavaScript中头等舱的存在。优先级大于变量提升。
比如
var a = 2;
function a(){
console.log(typeof(a)); // a is not a function
}
a(); // a is not a function 因为函数提升 代码被解析为 var a = 2;给a赋值为2 是一个number类型。
var a = function(){
console.log(typeof(a));
}
var a =2;
a();