关于JavaScript全局变量与局部变量

对于Js 估计大家都很熟悉了, 也是在今天早上看到一篇文章后, 才对全局变量和局部变量有了新的认识。

var glVar = 1; 
function main() {
    console.info(glVar);
    var glVar = 2;
    console.info(this.glVar);
}

对于main 和  var p = new main(); 会输出什么?

答案:undefined, 1; undefined, undefined;

第一个undefined  glvar 为undefined! 这个glvar 并不是全局变量,这是因为在function main 里已经声明了(函数体数第3行)一个重名的局部变量,   js 在初始化的时候,是先把变量提前定义 在进行赋值 ; 例如:

function testVar() {
    console.info(a);
    a = 4;
    var a;
    console.info(a);
}
输出的则是  undefined, 4;

第二个this 表示windows, 其实全局变量也就是windows.glVar 所以不会有太大异议;

第三个 同第一个;

第四个:此事的this 代表的是main 而不是windows 所以也是undefined;



如有解释不到位之处,烦请各位大牛给予详解,谢谢了。

转载于:https://my.oschina.net/u/1430310/blog/643942

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值