ES6新特性

ECMAScript6.0(简称ES6)在 2015 年 6 月 正式发布。ECMA :欧洲计算机制造商协会 European Computer Manufacturers Association。

ECMASCRIPT:是制定JavaScript的一种标准。到目前为止,各大浏览器基本都实现了ES6标准,对于不支持ES6的老浏览器,可以使用 babel 将ES6代码转换为ES5代码。

ES6的特性:

  一、块级作用域声明方式 let 和  常量声明方式 const

   let:

    1、使用 let 来定义的变量,作用域仅限于当前的代码块,而不是当前的函数。

    2、let 不存在变量提升。

        而 var 是会存在变量提升的(就是变量可以在声明之前使用,值为 undefined)。

        let 声明的变量在声明之前使用时会报错。

    3、 暂时性死区。

        在代码块内,使用 let 声明变量之前,该变量是不可用的,这在语法上,称为“ 暂时性死区 "  (简称 TDZ)。

    4、 let 不允许在相同作用域内,重复声明同一个变量。

        作用域嵌套时,内层作用域可以声明定义外层作用域的同名变量。

      const:

    1、const 声明一个只读的常量。一旦声明,常量的值就不能改变,这意味着 const 声明的变量一旦声明就必须立即初始化。

    2、const 声明的变量同样也存在暂时性死区,且 只在声明的块级作用域中有效,不可重复声明。

    3、const 声明本质是保证变量指向的那个内存地址所保存的数据不得改动

       所以,使用 const 声明数组和对象时,变量随不能被再次赋值,但是数组和对象是可以进行增删改等操作的。

  二、对象和数组的解构赋值

    1、数组结构赋值:可以使用 [] 对数组进行解构

      let [ a, b, c ] = [ 1, 2, 3 ]     //  a = 1, b = 2, c = 3

    2、对象结构赋值:let obj = { name: "zhangsan", age: 18 }

      可以使用 {} 对对象进行解构,将对象中的属性拆分到多个变量中。

      let { name, age } = obj     //   name = "zhangsan" ,  age = 18

  三、ES6的对象字面量语法

    let name = "张三";  let age = 18;

    let person = {

          name,

          age,

          run(speed){ console.log(name + " 正在 " + speed + ” 的速度奔跑。“) }

        }

  四、ES6中可以使用关键字 class 来声明一个类。格式为:class  + 类名

    class Animal {

      constructor({ name,sex}){   // 构造函数

        this.name = name;

        this.sex  = sex;

      }

      bark(){ console.log("这是个方法") }

    }

  五、ES6字符串模板,字符串模板中可以使用 ${} 的形式嵌入变量,并且可以在里面换行。

    let name = "小明";  let  age = 18;

    let str =  ` 我叫 ${name} ,今年 ${age} 岁了`

  六、ES6中的箭头函数,ES6中的箭头函数的格式 :

    (参数列表) => { 函数体 } ,当参数只有一个时,() 可以省略。

    箭头函数和普通函数除了写法上不同外,函数中的 this 指向也不一样。

  ........  持续更新中

    

      

    

你可能感兴趣的:(ES6新特性)