1.
JS执行的时候会生成执行环境,全局执行环境或者函数执行环境。创建执行环境会经历两个阶段,第一个阶段是创建阶段,js解释器找出需要提升的变量和函数,在内存中提前为他们开辟空间,函数的话直接将整个函数放入内存空间,变量只声明并赋值为undefined,第二个阶段就是执行阶段,之前声明的变量和函数就可以提前使用了。
2.
在提升的过程中,后面的同名函数会覆盖前面的函数,并且函数的优先级高于变量