美文网首页
ECMAScript 版本差异

ECMAScript 版本差异

作者: UULU | 来源:发表于2019-08-16 16:44 被阅读0次

    ECMAScript(ES) 是 Javascript 语言规范,由欧洲计算机制造协会(ECMA - European Computer Manufacturers Association) 制定。


    版本命名规则:

    • ES5 代表第 5 个 ES 版本,从 ES2015 开始直接按年份作为版本号
    • ES.Next 不代表任何的具体版本,仅用来指代下一个 ECMAScript 版本

    ES1-ES4

    传统版本

    ES5 (2009)

    • 增加 strict mode
    • JSON 静态方法 JSON.parse(), JSON.stringify()
    • String.trim()
    • 扩充 Arrary 方法 isArray(), forEach(), map(), filter(), reduce(), reduceRight(), every(), some(), indexOf(), lastIndexOf()
    • Date.now()
    • Getter/Setter 属性
    • 定义对象或数组时允许最后一个元素结尾带逗号

    ES2015 (ES6)

    • 声明变量 let、常量 const
    • 箭头函数 const sum = (a, b) => a + b
    • 函数默认参数 const sum = (a, b = 1) => { return a + b; }
    • class 声明类 class Person { constructor(name) { this.name = name } }
    • 扩充 Arrary 方法 find(), findIndex()
    • 模板字符串 `Hello ${name}`
    • 数组和对象 const {name, age} = person; const [a, b] = arr;
    • 模块 import/export export default class Person { ... } import Person from './person'
    • 异步函数返回对象 Promise return new Promise((resolve, reject) => { resolve(true) })
    • 展开操作符与其余参数 const [a, ...rest] = arr; const f = (..args) => {}

    ES2016 (ES7)

    • 指数操作符 **
    • 扩充 Arrary 方法 Array.includes()

    ES2017 (ES8)

    • 异步函数 async/await
    • 共享内存与原子操作
    • 扩充 String 填充方法 padStart(), padEnd()
    • 扩充 Object 方法 values(), entries(), getOwnPropertyDescriptors()

    ES2018 (ES9)

    • 异步迭代
    • Rest/Spread 属性 const {name, ...rest} = person;
    • 扩充正则方法 :
      • 命名捕获组
      • Unicode Property Escapes
      • Lookbehind Assertions
      • /s(dotAll) flag

    相关文章

      网友评论

          本文标题:ECMAScript 版本差异

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