简述ECMAScript6新增特性

1.变量

  • var 可以重复声明、只有函数级的作用域、存在变量提升
  • let 不能重复声明、有块级作用域、没有变量提升、变量
  • const 不能重复声明、具有块级作用域、常量

2.箭头函数

  • a.为了方便而存在
    1.只有一个参数,圆括号()可以省
    2.如果只有一个return、{}可以省
  • b.修正this
    this相对正常点了:箭头函数里的this指向上一级(父类)的this

3.参数扩展

  • 扩展运算符:...

  • 能收集

  • 能扩展

  • 默认参数
    function(a,b,c=5){//c为默认参数,只传两个参数时c默认为5,这个默认参数放在左右中间都可以(已实验)
    }

4.数组方法

  • map 映射
  • reduce 汇总:一堆->一个(算总数、平均数)
  • filter 筛选
  • forEach 循环(迭代)

5.字符串

  • startsWith/endsWith

  • 字符串模板:反单引:${这里变量或者调用函数} 可以识别空格和换行,常用于给html添加标签结构

6.Promise

  • 封装异步

Promise.all([]);

7.generator

function *show(){
    yield;
}

8.JSON

  • JSON.stringify({a:12,b:5}); => '{"a":12,"b":5}' 对象装换为字符串
  • JSON.parse( '{"a":12,"b":5}'); => {a:12,b:5} 字符串解析为对象

9.解构赋值

  • let [a,b,c] = [12,5,7];

  • 左右结构一样

  • 右边是个合法的结构

  • 声明和赋值一次完成

10.面相对象

  • 新增类定义关键字class
    class Test{
        constructor(){
            this.xxx=xxx;
        }
        方法1(){
        }
        方法2(){
        }
    }
  • 新增继承关键字extends
    class Son extends Father{
        constructor(){
            super();//通过该方法执行父类的构造函数
        }
    }