JS的预解析和作用域浅析

作用域:
作用:读、写
域:空间、范围、区域

<script></scriipt>就是一个域。
script域的特点 :全局变量,全局函数,自上而下、
函数也可以看成是一个域:局部变量,自上而下、

作用域简单的说就是:在什么空间范围内,你可以对你的数据进行读写操作。

预解析:

浏览器中用“JS解析器”来解析 JS代码而 "JS解析器"至少会做两连事(注意是至少,不是只做两件事)
1)JS的预解析-- "找一些东西":
寻找 var function 参数 等关键字, 根据var a提前设置为 a=未定义 , 所有的变量,在正式运行前都提前赋值了一个未定义
函数在正式运行代码前,都是整个函数块。 f n1=function fn1(){ alert(2); }

2)逐行解读代码:
通过表达式,修改预解析好的代码的值
表达式:= + =*/ ++,--, 参数;
举个栗子加强理解:
alert(a);            //弹出function a(){alert(4);}因为最后解析的a是函数
var a=1;          
alert(a);           //1    
function a(){alert(2);}     
alert(a)            //弹1,因为表达式才可以改变预定义的代码的值      
var a=3;
alert(a);          //3
dunction a(){alert(4);}
alert(a);          //2

a();              //报错,此时预定义的代码中,a=3,这个代码相当于是3();故报错
alert(typeof a)     //Number

































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值