作用域 预解析

Posted miumiu316

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作用域 预解析相关的知识,希望对你有一定的参考价值。

作用域

域:空间 范围 区域

作用:读、写

1.script  全局变量 全局函数 自上而下一块执行完毕执行下一块

2.函数  由里到外

浏览器

js解析器

1.找一些东西:根据关键字 var function  参数

     a=未定义  

     所有的变量,在代码正式运行之前,都提前赋了一个值:未定义

     fn1=function fn1(){alert(2);}

  所有的函数,在代码正式运行之前,都是整个函数块

  JS预解析(形成一个仓库)

  注:遇到重名的,只留一个

    变量和函数重名了,就只留下函数

例1:

var a=1;

function fn1(){

  alert(a);   //undefined  函数作用域

  var a=2;

}

fn1();

alert(a);  // 1

例2

var a=1;

function fn1(){

  alert(a);   //1  

  a=2;

}

fn1();

alert(a);  // 2

2.逐行解读代码

 表达式:=  + - * / % ! ++ -- 参数     能够改变值的动作

 表达式可以改预解析的值

alert(a);  //function a(){alert(4);}

var a=1;

alert(a);   //1

function a(){alert(2);}

alert(a);   //1

var a=3;   //3

alert(a);

function a(){alert(4);}

alert(a);

a();    //报错

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

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

关于作用域和预解析的不常见重要知识

JavaScript——作用域预解析对象

JavaScript——作用域预解析对象

JavaScript中作用域和预解析

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