js----预解析,作用域链
1.js作用域
script作用域 = 全局作用域
函数作用域 = 局部作用域
2.js解析器
只要进入作用域,就会启动js解析器
3.解析步骤
一.预解析
首先寻找 var function 形参
1.找到var后,提取后面的名字存入解析器,并给该变量初始化 值为 undefined
2.如果变量与函数同名,丢弃变量,保留函数
3.后找到的函数 覆盖先找到的函数
4.如果有多个script标签,则从上到下解析并执行
进入第一个script标签时,先解析并逐步解读代码,完毕后,依次解析并执行后面的script作用域
二.逐行解读代码(解读时,函数生命自动跳过)
1,解读表达式
2.函数调用(函数也是一个作用域,一旦进入作用域,就会启动js解析器)
1.预解析
2.逐行解读代码
4.作用域链
如果当前作用域中没有所要执行的变量,就会向父级作用域中进行查找,如果没有,就会再向父级的父级寻找,
一直找到script作用域,如果还是没有,就会报错