前言

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

变量声明的扩展:let和const

  • var 的问题
    • 可以重复声明,没有报错和警告
    • 无法限制修改
    • 没有块级作用域,出了块依然能够使用 { }
  • let 和 const
    • 不能重复声明
    • 都是块级作用域, { } 块内声明的,块外无效
    • let 是变量,可以修改
    • const 是常量,不能修改
  • 块级作用域举例
    • 原来用 var 的方式,声明的变量出了块依然可以使用
    • 或者将变量 封装到函数里,限制作用域,但比较麻烦
    • 用 let 最简单,直接 var 改 let,解决作用域问题

变量初始化的改变:解构赋值

解构赋值

  • 左右两边结构要一致
  • 右边必须是合法的JS对象
  • 声明和赋值不能分开,必须在一条语句中

函数扩展:默认值、作用域变更、剩余参数、箭头函数、尾调用优化

默认值

作用域变更

剩余参数(…)

Lambda 箭头函数

箭头函数,就是函数的简写

  • 如果只有一个参数,() 可以省
  • 如果只有一个return{}可以省

尾调用优化

  1. function fibonacci (n) {
  2. if ( n <= 1 ) {return 1};
  3. return fibonacci(n - 1) + fibonacci(n - 2);
  4. }
  5. Fibonacci(10) // 89
  6. Fibonacci(100) // 超时
  7. Fibonacci(500) // 超时
  8. function fibonacci2 (n , ac1 = 1 , ac2 = 1) {
  9. if( n <= 1 ) {return ac2};
  10. return fibonacci2 (n - 1, ac2, ac1 + ac2);
  11. }

数组扩展:扩展运算符、各种新增函数

扩展运算符(…)

新增函数

对象扩展

新增的Set 和 Map 数据结构

Promise对象

Fetch