变量声明提升
- 通过 var 定义(声明)的变量,在定义语句之前就可以访问到
- 值: undefined
console.log(a) // undefined
var a = 4
函数声明提升
- 通过 function 声明的函数,在之前就可以直接调用
- 值:函数定义(对象)
fn()
function fn() {
console.log('fn()') // fn()
}
问题与思考
- 输出什么内容 ?
var a = 3
function fn() {
console.log(a) // undefined
var a = 4
}
fn()
- 输出什么内容 ?
fn() // 无法调用,通过 function 声明的函数,在之前才可以直接调用
var fn = function () {
console.log('fn')
}