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

预解析
=> 这个预解析不能演示
=> 全靠的是想象力
=> 就是在我们的代码执行之前的一个环节
=> 就是对我们的代码进行通读并解释
对哪些代码进行通读并解释(重点)
=> 第一个: 是对var关键字
-> 会把var关键字和变量名提前 当前作用域最前面
-> 这个时候不赋值
=> 第二个: 是对声明式函数
-> 会把函数名提前 当前作用域最前面
-> 并同时赋值为一个函数
注意: 赋值式函数按照var的预解析规则进行预解析
JS的预解析还有一些需要注意的细节,包括以下几点:
1.函数声明和变量声明的作用域
在预解析阶段,函数声明和变量声明的作用域是整个函数或全局作用域。这意味着,在函数内部声明的函数和变量可以在整个函数内部被访问,而在全局作用域声明的函数和变量可以在整个脚本中被访问。
2.函数声明和变量声明的优先级:
在预解析阶段,函数声明的优先级高于变量声明。这意味着,如果同名函数和变量同时声明,函数声明会覆盖变量声明。
3.非全局作用域的预解析:
在非全局作用域(如函数作用域)中,预解析只会发生在该作用域内。这意味着,在函数内部声明的函数和变量只会被提升到该函数作用域的顶部,而不会影响到其他函数或全局作用域。
总的来说,预解析是JavaScript中的一个重要概念,可以帮助我们更好地理解变量和函数的作用域和生命周期。了解预解析的规则和特点,可以帮助我们编写更加规范和可读性更好的JavaScript代码。
当然,现在用了let、const和函数式表达式等,可以避免因为变量提升等带来的小麻烦。