前端全局变量和局部变量

有形参,函数内部变量定不定义var都是局部变量,如果没定义,但是赋值了,就会在内部声明前置。

如下:

    var a = 3;
    function sum(a) {//有形参
        //a赋值了,所以该位置会加个声明前置:var a;
        var b = 2, c = 4;
          d = b + c;
        console.log("d1=" + d);//d1=6
        a = 9;//因为有形参,所以此处a是局部变量
        console.log(a);//9
    }
    sum(a);
    console.log(a);//3
    console.log("d2=" + d);//d2=6

解读:因为设置了形参且a赋的有值,所以函数内部的a在函数内部作用域设置声明前置,此时a = 9;是局部变量,可以被函数内部访问,不可以被外部访问。

无形参,函数内部变量定义了var就是局部变量,未定义var就是全局变量。

如下:

    var a = 3;
//该处设置声明前置:var d;
    function sum() {

        var b = 2, c = 4;
          d = b + c;//d在函数内部未找到局部变量d,转去外部找全局变量d,未找到,但是因为赋值了,所以在外部设置声明前置
        console.log("d1=" + d);//d1=6
        a = 9;//函数内部没有局部变量a,所以是全局变量
        console.log(a);//9
    }
    sum();
    console.log(a);//9
    console.log("d2=" + d);//d2=6

解读:由于没有设置形参,所以d在外部设置声明前置,此时为全局变量,a = 9;此时为全局变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值