1. 浏览器的JS引擎对脚本的处理过程:先通读,再执行 2. 通读的过程即预解析 3. 遇到变量(var xxx) 分配内存填充undefined 4. 遇到函数(function xxx(){...}) 分配内存直接填充代码 5. 导致的一些现象 变量提升:在变量var之前就已经能访问,只不过类型和值都是undefined 函数提升:声明式函数可以在声明前直接访问