作用域
作用域就是变量的有效范围. 作用域分为三种:
1.全局作用域:最外层函数定义的变量拥有全局作用域.所有函数可以访问变量.global
2.局部作用域:函数内部声明的变量拥有局部作用域,只有在函数内部可以访问变量.script
3.块级作用域:底层函数的作用域.block
作用域链
作用域链在我的理解看来就是变量的访问规则.
预解析与声明提升
js代码的执行是由浏览器中的js解析器来执行的.js解析器执行代码分为连个过程 : 预解析过程和执行过程.
预解析过程:
会把所有的函数声明和变量声明提前到最前面,先提示function再提升var.
声明提升: var定义变量的时候,变量的声明会在变量的赋值之前.
function定义函数的时候,函数的声明会被提升到当前作用域的最前面.