js----预解析,作用域链

Posted SRH啦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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作用域,如果还是没有,就会报错

 

 

 

以上是关于js----预解析,作用域链的主要内容,如果未能解决你的问题,请参考以下文章

js全局变量与局部变量 预解析与作用域链详解

预编译作用域链和闭包理解

JavaScript之作用域,作用域链和预解析

JS全局与局部作用域解析作用域链(下)

小白学js第六天之代码规范,作用域以及预解析

菜鸡对作用域链的理解