预解析:
在代码中,首先会预先解析一些(变量定义、函数会预解析);
var a=12;
js只把var a提到作用域的顶部
js会把变量的声明(仅仅是声明)提到顶部。不会突破作用域
执行步骤:
读取一个script标签>预解析>执行里面的代码>
读取下一个script标签>预解析>执行里面的代码
不会突破script标签
undefined和not defined
undefined存在没有赋值
not defined 没定义 直接用
预解析作用范围:
会找本作用域之内(函数、script);
函数也有预解析,但是要注意:
当以变量的形式声明的函数,预解析会按照变量的特性走。