使用var声明的变量和不使用关键字声明的变量的区别

使用var声明的变量是在JavaScript中常用的一种变量声明方式,而不使用关键字声明的变量是指直接使用变量名进行赋值,而不进行显式的声明。

区别如下:

  1. 变量作用域:使用var声明的变量具有函数作用域(函数内部的作用域是私有作用域),即只在声明的函数内部有效,而不使用关键字声明的变量是全局变量,可以在代码的任何地方访问。
  2. 变量提升:使用var声明的变量会进行变量提升,即在函数作用域内,无论在哪里声明,都会被提升到函数的顶部,而不使用关键字声明的变量不会进行变量提升
  3. 变量重复声明:使用var声明的变量可以被重复声明,后面的声明会覆盖前面的声明,而不使用关键字声明的变量如果重复赋值会修改变量的值,但不会重新声明。
    //在函数内部使用var声明
    function example() {
      var x = 10;
      console.log(x); // 输出 10
    }
    example();
    console.log(x); // 报错,x未定义
    
    //不使用关键字声明的变量:
    function example() {
      x = 10;
      console.log(x); // 输出 10
    }
    example();
    console.log(x); // 输出 10,x为全局变量

 练习

 var a = b = 10;
    a = 20;
    b = 20;
    console.log(a)//20
    console.log(b);//20
    //预解析:var a (只声明不赋值)
    //代码执行:1.var a = b = 10;因为不存在b这个变量,所以b被看作全局变量为a,b同时赋值为10
    //        2.a = 20;为a重新赋值为20
    //        3.b = 20;为b重新赋值为20
    //        4.console.log(a)控制台输出a=20
    //        5.console.log(b)控制台输出b=20

    var a = b;
    a = 20;
    b = 20;
    console.log(a);
    console.log(b);
    //预解析:var a
    //代码执行:1.var a = b; 将b的值赋值给到a,但是未定义报错b is not defined 后续代码不会执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值