千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

p39 038再谈函数-预解析
预解析是在代码执行之前对代码执行通读并解释
第一个: 是对var关键字
-> 会把var关键字和变量名提前 当前作用域最前面
-> 这个时候不赋值
=> 第二个: 是对声明式函数
-> 会把函数名提前 当前作用域最前面
-> 并同时赋值为一个函数
注意: 赋值式函数按照var的预解析规则进行预解析
预解析的重名问题
=> 第一种: 变量名和变量名重名
-> 以第一个的为准
-> 后面定义的没有意义
=> 第二种: 函数名和函数名重名
-> 以后面的函数为准
-> 也就是后面定义的会把前面定义的覆盖掉
=> 第三种: 变量名和函数名重名
-> 以函数名为准
预解析中的特殊情况
=> 第一个:
-> 如果if条件为假(false)
-> 不执行if后面的大括号中的代码
-> 但是不影响预解析
=> 第二个:
-> return后面的代码是不执行
-> 但是会进行预解析