预解析:就是在解析代码之前
预解析做什么事?
把变量的声明提前了----提前到当前所在的作用域的最上面
函数的声明也会被提前—提前到当前所在的作用域的最上面
预解析中,变量的提升,只会在当前的作用域中提升,提前到当前的作用域的最上面
函数中的变量只会提前到函数的作用域中的最前面,不会出去
预解析会分段(多对的script标签中函数重名,预解析的时候不会冲突)
// 函数调用的时候,把会函数的声明提升到作用域的上面
f1();//调用
var num=20;//这个变量的声明会提升到变量使用之前
function f1() {
console.log(num);
//var num=10;
}