javascript的变量和作用域

变量,根据作用范围分为局部变量和全局变量

局部变量:局部可以访问的变量;函数内部使用var定义的变量

全局变量/成员变量:哪里都可以进行访问;函数外部变量或者进入javaScript之后立即定义的变量,或者函数内部不带有var的变量(函数必须要进行初始化才可以)

var num3 = 333; //全局变量  
    function  fun() {
        var num1 = 111;//局部变量
        num2 = 222; //全局变量
    }
    fun();
    console.log(num3);
    console.log(num2);
    // console.log(num1);

使用全局变量和局部变量的原因:局部变量如果函数执行完毕之后,会被GC回收,但是全局变量会一直保持着

隐式全局变量:

 function fun(){
        //b c都是隐式全局变量
        var a = b = c = 1;
        // e f都是隐式全局变量
        var d = 1; e = 2 ; f = 3;
        //g i 不是隐式全局不变量
        var g = 1, h = 1,i = 1;
    }

预解析:在函数中,定义变量在使用变量之后(容易出现undefied,计算后形成NaN;)

1,查看语法错误

2,只提升变量名,不提升变量值

3,function函数定义的整体提升

特点:

a,函数不调用不执行

b,函数名等于整个函数

c,加载函数的时候只加载函数名,不加载函数体

d,function中传入的参数等于局部变量

e,两个函数的局部变量不会互相影响

案例一:

将var num = 20;改为num = 20;
  var num = 10;
    fun();
    function  fun() {
        //变量声明提升 只提升变量名,不提升变量值
        console.log(num);
        var num = 20;
    }

案例二:

  a局部变量,b c是全局变量想当于 var a = 9; b = 9 ; c = 9;
 fun();
    console.log(c);
    console.log(b);
    console.log(a);
    function  fun() {
        var a = b = c = 9;
        console.log(a);
        console.log(b);
        console.log(c);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值