一、函数声明
函数声明的function
关键字放在最前面
函数声明的函数会整体提升到顶部
console.log(a) // function a () {/*code*/}
function a () {/*code*/}
预编译时实际顺序如下:
function a () {/*code*/}
console.log(a)
二、函数表达式
在函数表达式中可省略函数名称从而创建匿名函数
函数表达式没有提升,使用var
关键字时变量提升,而let
不进行变量提升
console.log(a) //undefined
console.log(b) //报错,暂时性死区
var a = function () { }
let b = function () { }
预编译时实际顺序如下:
var a; //变量提升
console.log(a) //undefined
console.log(b) //报错,暂时性死区
a = function () { }
let b = function () { }