1、预编译,function,变量提前编译,function要比变量更早,变量首先赋值Undefind。
2、函数内部的声明是函数内部的,函数内部的变量找不到,从全局去寻找个需要编译的变量。
1. JavaScript “预解析”过程中,遇到重名的内容,只保留一个:
⑴ 重名变量或重名函数,保留最后的一个;
⑵ 变量和函数重名,只保留函数;
2.根据作用域链,来查找上文第一步中提到的需要被解析的东西
查找原则:从上到下,从里到外
即先找局部作用域里找,然后子对象会一级一级向上寻找所有父对象的变量。
3、JS是根据script代码块进行编译的,是顺序预编译的,上面JS代码块定义的某个变量或者函数,在下面的JS代码块中,能够找到就能编译成功。