作用域链
作用域链:通过上节作用域我们知道,当我们声明一个函数时,程序会生成一个独立的作用域,如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域;根据 内部函数可以访问外部函数变量 的这种机制,用链式查找决定哪些数据能被内部函数访问,就称为作用域链。
作用域链采取就近原则的方式查找最终的值。
预解析
预解析相关概念:JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的。JavaScript 解析器在运行 JavaScript 代码的时候分为两步:预解析和代码执行。
预解析 在当前作用域下,JS 代码执行之前,浏览器会默认把带有 var 和 function 声明的变量在内存中进行提前声明或定义。
代码执行 从上往下执行 JS 代码
预解析会把变量和函数的声明在代码执行之前完成,预解析也叫做变量、函数提升。
变量预解析(变量提升) 变量的声明会被提升到当前作用域的最上面,变量的赋值不提升。
对象
对象是一组无序的相关属性和方法的集合