es6

作者: 弯弯是豌豆 | 来源:发表于2019-03-29 11:00 被阅读0次

    1、let、var、const
    区别:let只在本身所在的代码块中才会生效var则是全局生效;let在声明变量之前使用会报错;而var则可以使用,返回undefined;let不允许对同一个变量重复声明;const声明一个只读的常量。一旦声明,常量的值就不能改变;const不可重复声明。
    es6中除了let、const声明变量之外还有import和class

    2、解构赋值:针对于对象和数组。
    数组解构等号两边必须是数组,允许赋默认值,但条件是数组成员严格等于undefined,默认值才能生效。
    对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。
    let { foo: baz } = { foo: "aaa", bar: "bbb" };
    baz // "aaa"
    foo // error: foo is not defined

    两者不同:数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

    3、函数的扩展
    参数的默认值可以写在参数的后面
    函数参数与解构赋值默认值结合使用
    函数的length属性,将返回没有指定默认值的参数个数。也就是说,指定了默认值后,length属性将失真,不包括rest参数
    rest参数是简化后的arguments参数,形式为数组,数组具有的属性其都具有,并且为一个函数的最后一个函数,若非,则报错。
    name属性,将一个匿名函数赋值给一个变量es6中会返回该变量名,若将一个具名函数赋值给一个变量,则返回该具名函数的函数名。

    4、symbol
    一种新的原始数据类型Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
    可以接受一个字符串作为参数,目的是为了区分不同的声明变量
    可以接受一个对象作为参数,默认会执行对象中的toString()属性

    5、Set、Map数据结构
    Set它类似于数组,但是成员的值都是唯一的,没有重复的值,可用于数组去重。...set
    在set内部认为NaN是相等的,所以加入两个NaN会去重。而认为对象{}是不相等的。

    相关文章

      网友评论

          本文标题:es6

          本文链接:https://www.haomeiwen.com/subject/ygzqjqtx.html