ES6

44 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情

初识ES6

ECMAScript简称为ES6,是在2015年新发布的Javascript语言的新标准。此时的ES6已经逐步的向复杂类型,强类型特制,对于之前的ES5来说发生了很大的变化,新增了很多好用的功能。比如一些变量的定义,模板字符串的编写。要是之后版本的ES新增了功能,也要看浏览器有没有跟进能不能在这个浏览器上使用。

变量的定义

在ES6中,新增了两种定义方式,那就是letconst。在我们还没有接触到ES6之前我们都是用的var来定义变量,这种方式有一些不太好的地方我们称它为变量声明提升。为了解决这种问题,所以给我们搞了两种新的定义方式。

先搞清楚var跟新增的两个之间的区别

1.必须先定义再使用

      console.log(a)   
      //我在定义变量之前去调用这个变量,在var定义的变量中是可以访问的但是不能够获取它的值。
      var a=123   
      

而在新的两种定义方式中都不会出现这样的情况。

     console.log(a)
     let a =100
     console.log(b)
     const b =100
     //如果这两种方法这么写在运行开始时就会报错
     

2.变量重名

     var name='nannan'
     var name='manman'
     //在var定义中后写的会覆盖前面写的,所以之后我们在控制台输出的时候输出的会是后面定义的
     console.log(name)  //输出的结果:manmanletconstlet name='nannan'
     let name='manman'
     他会检测重复的变量名,如果有重复的变量名他将会报错
     constlet一样都会检测重名
     

3.块级作用域

    var只有在函数的大括号中才会受到限制
    
    letconst在其他的大括号中都会受到限制

let和const的区别

let定义的是变量,你可以用其他值将它原先的值覆盖。

    let name='nannan'
    name='manman'
    //这样写后写的name值就会将前面的覆盖,所以name值为manman

而const定义的是一个常量,不可以用其他值将他覆盖,不然会发生报错。

    const name='nannan'
    name='manman'
    //这样子是覆盖不了的,会发生报错
    

总的来说就是,如果你想要一个值可以一直改变,那你就用let;想要一个值一直不变,那就用const。