函数声明提升
- 1.变量只提升声明,不提升赋值
- 2.函数表达式不提升赋值
- 3.函数声明提升
- 顺序:形参 变量 函数
//定义函数 function demo(num){ console.log(111,num) //111 f num(){ console.log(1111) } //定义变量 var num = 20; console.log(222,num) ///222 20 //声明一个函数 function num(){ console.log(111) } console.log(333,num) ///333 20 } //执行函数 ickt(10);
首先,形参提升(形成AO属性),变量提升(提升声明,不提升赋值,第一个打印后被变量赋值,所以第二个第三个都打印20),函数提升(num被覆盖,所以第一个打印的是个函数)