外观
变量提升
使用var声明的变量若在之前被使用,则会正常输出结果,因为JS隐式地将声明的语句放到作用域最前面了,但是没有提升赋值。
console.log(num); //输出“undefined”
var num = 0;函数也具有函数提升的特性。
func(); //输出111
function func() {
console.log("111");
}需要注意变量提升只会提升声明,不会提升赋值,下面的函数运行会报错。所以函数赋值必须在先。
func(); //相当于let func; func为undefined,不可调用
let func = function () {
console.log(111);
}