1.函数的声明可以整体提升
js中, 声明和赋值是两步过程. 函数声明可以整体提升,下面的test()的在函数声明之前是不会报错的,函数已整体提升在test()执行之前
test()
function test() {
console.log(1); //1
}
//相当于
function test() {
console.log(1); //1
}
test()
2.用var定义的方式, 变量只有声明提升,而赋值操作不会提升
console.log(b); //undefined
var b = 2 //var b =2 这是两个步骤 1.定义变量a 2. 将数字2赋值给变量b
//声明可以提升 但赋值操作是不会提升的 所以是undefined
console.log(testAgain); //undefined
var testAgain = function () {
console.log(3);
}
//1.定义变量 testAgain
//2.将匿名函数赋值给testAgain //声明提升了 赋值操作不提升 结果一样是undefined