目 录CONTENT

文章目录

ECMAScript(ES)各版本特性

邱少羽梦
2024-03-28 / 0 评论 / 0 点赞 / 134 阅读 / 4218 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-04-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、ECMAScript简介

ECMAScript是一种由Ecma国际标准化的脚本程序设计语言,通常被称为JavaScript或JScript的标准。

二、ES6 (ES2015)

  1. Class: 引入了类的概念,使得在JavaScript中可以更轻松地实现面向对象编程。
  2. 模块化语法(import、export): 引入了模块化的语法,允许将代码分割为多个模块,以提高代码的可维护性和可重用性。
  3. 箭头函数: 提供了一种更简洁的函数定义方式,使得在函数式编程中编写代码更加方便。
  4. 函数参数默认值: 允许在函数定义时为参数设置默认值,简化了函数的使用。
  5. 模板字面量: 引入了反引号(``)语法,使得在字符串中插入变量和表达式更加方便。
  6. 解构赋值: 允许从数组或对象中提取数据,将其赋值给对应的变量,提高了代码的可读性和简洁性。
  7. 扩展运算符: 用三个点(...)表示,可以在数组和对象中进行扩展操作,简化了操作。
  8. Promise: 提供了更好的异步编程解决方案,使得在处理异步操作时代码更加清晰和可维护。
  9. let, const 替代 var: 引入了letconst关键字,分别用于声明变量和常量,解决了var存在的一些问题,如变量提升和作用域问题。

三、ES7 (ES2016)

  1. Array.prototype.includes(): 提供了一种更直观的方法来判断数组中是否包含某个值。
  2. 幂运算符: 引入了**运算符,用于进行幂运算,例如2**3表示2的3次方。

四、ES8 (ES2017)

  1. async/await: 提供了更简洁的语法来处理异步操作,使得异步代码的编写更加直观和易于理解。
  2. Object.values(): 返回一个数组,包含对象自身的所有可枚举属性的值。
  3. Object.entries(): 返回一个数组,包含对象自身的所有可枚举属性的键值对。
  4. 字符串 padStart() & padEnd(): 允许在字符串的开头或结尾添加指定的字符串,以达到指定的长度。
  5. 尾随逗号: 允许在函数参数列表和数组/对象字面量的尾部使用逗号,提高了代码的可维护性。
  6. Object.getOwnPropertyDescriptors(): 返回对象的所有自身属性的描述符。

五、ES9 (ES2018)

  1. 异步迭代器: 允许在异步函数中使用for await...of语法进行异步迭代。
  2. Promise.finally(): 添加了finally()方法,该方法在Promise执行完毕后无论成功与否都会执行。
  3. Rest, Spread: 支持在函数参数中使用剩余参数(rest)和扩展操作符(spread)。

六、ES10 (ES2019)

  1. 更友好的 JSON.stringify: 修复了对Unicode字符的处理,以更准确地输出Unicode字符串。
  2. Array.prototype.flat() & Array.prototype.flatMap(): 提供了一种简便的方式来展平嵌套数组。
  3. String.prototype.trimStart() & String.prototype.trimEnd(): 分别从字符串的开头和结尾移除空格。
  4. Object.fromEntries(): 将键值对列表转换为对象。
  5. String.prototype.matchAll(): 返回一个包含所有匹配结果的迭代器。
  6. 可选链操作符 (?.): 允许对可能为nullundefined的对象的属性进行安全访问。
  7. Nullish 合并运算符 (??): 提供了一种更安全的方式来设置默认值,只在左侧的值为nullundefined时生效。

七、ES11 (ES2020)

  1. Promise.allSettled(): 返回一组Promise的状态,不管是fulfilled还是rejected。
  2. 可选链操作符 (?.): 允许对可能为nullundefined的对象的属性进行安全访问。
  3. Nullish 合并运算符 (??): 提供了一种更安全的方式来设置默认值,只在左侧的值为nullundefined时生效。
  4. 动态导入: 允许在需要时动态地导入模块。
  5. globalThis: 提供了一个标准的方式来获取全局对象。

八、ES12 (ES2021)

  1. Promise.any(): 返回最快完成的Promise结果,无论成功或失败。
  2. 逻辑赋值运算符 (||=, &&=, ??=): 提供了更简洁的逻辑赋值语法。
  3. WeakRefs: 允许创建对对象的弱引用,不会阻止对象被垃圾回收。
  4. 静态块: 提供了在类中进行静态属性初始化的机制。

九、ES13 (ES2022)

  1. 模块顶层作用域支持 await 表达式: 允许在模块顶层直接使用 await。
  2. 私有类元素: 通过#前缀定义的私有类元素,只能在类内部访问。
  3. in操作符支持私有类元素: 在类内使用in操作符判断私有类元素的存在。
  4. 新增正则/d标志和hasIndices属性: 用于获取捕获组开始索引和结束索引。
  5. Error对象的cause属性: 提供了更多错误信息。
  6. 新增Strings、Arrays、TypedArrays的at方法: 支持关联访问。

参考

*JavaScript进阶(二十六):ES各版本特性详解

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
  3. QQ打赏

    qrcode qq

评论区