ES8(ECMAScript 2017)聚焦提升开发效率与异步编程体验,核心新增async/await、Object.values()与Object.entries()、padStart()/padEnd()等实用特性,均已稳定支持主流环境。

ES8(即 ECMAScript 2017)是 JavaScript 在 2017 年发布的标准版本,它不是一次颠覆性升级,而是聚焦于提升开发效率、增强异步编程体验和补全对象/字符串等基础操作的能力。它的新增功能大多已稳定支持主流浏览器和 Node.js(v8.0+),日常开发中可直接使用。
async/await 异步编程更简洁
这是 ES8 最广为人知的特性。它让 Promise 链式调用变成接近同步代码的写法,大幅降低理解与维护成本。
- async 函数自动返回 Promise:即使函数体里没有 await,返回值也会被 Promise.resolve() 包装。
- await 只能在 async 函数内使用:它会暂停函数执行,等待 Promise settled(fulfilled 或 rejected),再继续向下执行。
- 错误处理推荐用 try/catch:比链式 .catch() 更直观,能统一捕获 await 前后抛出的异常(如 fetch 失败、JSON 解析错误等)。
Object.values() 和 Object.entries()
这两个方法补全了 Object.keys() 的能力,让对象遍历和转换更自然。
- Object.values(obj):返回对象所有可枚举属性值组成的数组,顺序与 for...in 一致。对纯数据对象(如配置、API 响应)做批量处理很实用。
-
Object.entries(obj):返回键值对二维数组,例如
[['a', 1], ['b', 2]]。常用于快速转为 Map:new Map(Object.entries(obj)),或配合 for...of 遍历。 - 注意:它们只处理对象自身、可枚举、非 Symbol 的属性,不包括原型链上的属性。
字符串填充:padStart() 和 padEnd()
用于格式化字符串长度,比如生成固定位数的编号、对齐日志输出、补零时间显示等。
标签: javascript java js node.js git json node 浏览器 ai 键值对
还木有评论哦,快来抢沙发吧~