作用域 预解析

作用域

域:空间 范围 区域

作用:读、写

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();    //报错

posted @ 2017-02-14 12:33  miumiu316  阅读(133)  评论(0编辑  收藏  举报