关于javascript函数作用域中的声明提前

权威指南3.10.1中提到了关于javascript函数作用域中声明提前的原理,但是为了理解透彻,这里我做了多个测试。

Test1:

var scope='global';
function f(){
scope='local';
console.log('scope='+scope);
var scope;
};
f();

var scope='global';
function f(){
  scope='local';
  console.log('scope='+scope);
  var scope;
};
f();
结果:  scope=local

Test2:

var scope='global';
function f(){
console.log('scope='+scope);
var scope='local';
};
f();
var scope='global';
function f(){
console.log('scope='+scope);
var scope='local';
};
f();
结果:
scope=undefined
两个测试可以说明:
 在javascript函数中声明提前的过程是执行函数时,先找出声明语句var xx;
然后再从函数的第一行开始执行。即所谓声明提前。


var scope='global';
function f(){
scope='local';
console.log('scope='+scope);
var scope;
};
f();

var scope='global';
function f(){
scope='local';
console.log('scope='+scope);
var scope;
};
f();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值