变量提升与函数提升
变量提升
- 主要是var声明变量时候变量会被提升至函数顶部,并初始化值为undefined
- 变量
console.log(num) //undefined
var num = 10
console.log(num) //10
- 声明函数
console.log(num) //undefined
var fn = function() {}
console.log(num) //function(){}
函数提升
- 是在定义函数的时候出现的一种现象
console.log(fn) //function fn(){}
function fn() {}
console.log(fn) //function fn(){}
函数提升和变量提升的优先级
- 函数提升大于变量提升 具体看案例
console.log(a) // function a() {}
var a = 10
console.log(a) //10
function a() {}
console.log(a) //10