作用域 预解析

谁都会走 提交于 2020-01-24 05:30:24

作用域

域:空间 范围 区域

作用:读、写

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!