• 2-新的变量声明方式(var ,let,const)


    以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种声明方式了。

    字面理解ES6的三种声明方式:

    1. var:它是variable的简写,可以理解成变量的意思。
    2. let:它在英文中是“让”的意思,也可以理解为一种声明的意思。
    3. const:它在英文中也是常量的意思,在ES6也是用来声明常量的,常量你可以简单理解为不变的量

      --var声明----
    4. var在ES6里是用来升级全局变量的,我们可以先作一个最简单的实例,用var声明一个变量a,然后用console.log进行输出。

      var a='小麦xiaomai';
      console.log(a);

    在控制台可以打印出来var a 变量的值,但是问题来了,到底怎么理解全局变量或全局变量的污染呢?

    然后在匿名函数中调用这个a变量,看看能不能调用到。

    var a="小麦";
    window.onload= function(){
        console.log(a);
    }

    可以看到控制台输出了小麦,这证明var确实是全局的。如果你觉的这个不够直观说明var是全局声明,还可以用区块的方式进行调用测试,先看下面的代码

    var a=2;
    {
       var a=3;
    }
    console.log(a);

    这时打印出来的值是多少那?对,应该是3,因为var是全局声明的。第二次的var声明的变量已经覆盖掉了第一次声明的var 变量的值。

    ** let局部声明 **

    通过两个简单的例子,我们对var的全局声明有了一定了解。那跟var向对应的是let,它是局部变量声明。还是上面的例子,我们试着在区块里用let声明。

    var a=2;
    {
       let a=3;
    }
    console.log(a);

    这时候控制台打印出来的值就是2了。获取不作用域里面的变量。如果我们只在区块里声明,不再外部声明,我们打印a时就会报错,显示找不到变量

    {
       let a=3;
    }
    console.log(a);

    上面两个例子说明了let是局部变量声明,let声明只在区块内起作用,外部是不可以调用的。

    有些刚接触JavaScript的小伙伴会疑惑了,我感觉let还没有var好用,其实let是防止你的数据污染的,在大型项目中是非常有用处的。现在看一个循环的例子,我们来看一下let的好处。

    for(let i=0;i<10;i++){
    console.log('循环体中:'+i);
    }
    console.log('循环体外:'+i);

    你执行时会发现控制台报错了,找不到循环体外的i变量。通过两种声明的比较,可以明白let在防止程序数据污染上还是很有用处的。我们要努力去习惯用let声明,减少var声明去污染全局空间,在vue的使用中也要注意这点。

    ** const声明常量**

    在程序开发中,有些变量是希望声明后在业务层就不再发生变化了,简单来说就是从声明开始,这个变量始终不变,就需要用const进行声明。

    我们来一段用const声明错误的代码,在错误中学习const的特性也是非常好的

    const a="JSPang";
    var a='小麦';
    console.log(a);

    在编译这段代码的过程中,你就会发现已经报错,无法编译了,原因就是我们const声明的变量是不可以改变的。const是很好理解的,我就不作过多的解释说明了。

    这节课我们学了ES6的3种声明方式,var、let、const,这三种方式各有所长,既然已经学习了新技术,我们就要拥抱它,试着在你的项目中根据情况用let和const进行声明吧,不要再只使用var了。

    -----------------

    那么简单的组件一下 var let const三个的区别:

    var声明变量可以重复声明,而let不可以重复声明
      var是不受限于块级的,而let是受限于块级
      var会与window相映射(会挂一个属性),而let不与window相映射
      var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
      const声明之后必须赋值,否则会报错
      const定义不可变的量,改变了就会报错
      const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报错,

    -------------------------------------------

    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

  • 相关阅读:
    navicat安装与激活
    MySQL 安装
    oracle中not in 和 in 的替代写法
    oracle中in和exists的区别
    oracle中nvarchar2()和varchar2()的区别
    oracle稳定执行计划(更改)的方法
    oracle显示转化字段类型
    oracle中varchar2(2)存不了一个汉字的原因
    oracle中索引快速全扫描和索引全扫描的区别
    oracle常见的执行计划
  • 原文地址:https://www.cnblogs.com/mahmud/p/11563422.html
Copyright © 2020-2023  润新知