Js引擎运行Js分两步:
1.预解析 2.代码执行
把Js中的所有var和function提升到当前作用域最前面(变量提升、函数提升)
然后按顺序执行代码
console.log(a)
var a = 1
//等价于
var a
console.log(a)
a=1
//console =>undifined
fn()
function fn(){
console.log('123')
}
//打印'123'
fn()
var fn = function(){
console.log('123')
}
//等价于
var fn
fn()
fn = function(){
console.log('123')
}
//var fn ,不存在fn()这个函数 报错