js中的作用域,作用域链,预解析与声明提升.

124 阅读1分钟

作用域

作用域就是变量的有效范围. 作用域分为三种:

1.全局作用域:最外层函数定义的变量拥有全局作用域.所有函数可以访问变量.global

2.局部作用域:函数内部声明的变量拥有局部作用域,只有在函数内部可以访问变量.script

3.块级作用域:底层函数的作用域.block

作用域链

作用域链在我的理解看来就是变量的访问规则.

预解析与声明提升

js代码的执行是由浏览器中的js解析器来执行的.js解析器执行代码分为连个过程 : 预解析过程和执行过程.

预解析过程:

会把所有的函数声明和变量声明提前到最前面,先提示function再提升var.

声明提升: var定义变量的时候,变量的声明会在变量的赋值之前.

function定义函数的时候,函数的声明会被提升到当前作用域的最前面.