返回介绍

ES2018

发布于 2024-09-07 18:02:44 字数 2036 浏览 0 评论 0 收藏 0

字符串扩展

  • 放松对标签模板里字符串转义的限制:遇到不合法的字符串转义返回 undefined ,并且从 raw 上可获取原字符串

对象扩展

  • 扩展运算符( ... ):转换对象为用逗号分隔的参数序列( { ...obj } ,相当于 rest/spread 参数的逆运算)

扩展应用

  • 克隆对象: const obj = { __proto__: Object.getPrototypeOf(obj1), ...obj1 }
  • 合并对象: const obj = { ...obj1, ...obj2 }
  • 转换字符串为对象: { ..."hello" }
  • 转换数组为对象: { ...[1, 2] }
  • 与对象解构赋值结合: const { x, ...rest/spread } = { x: 1, y: 2, z: 3 } (不能复制继承自原型对象的属性)
  • 修改现有对象部分属性: const obj = { x: 1, ...{ x: 2 } }

正则扩展

  • s 修饰符: dotAll 模式修饰符,使 . 匹配任意单个字符( dotAll 模式)
  • dotAll :是否设置 s 修饰符
  • 后行断言: x 只有在 y 后才匹配
  • 后行否定断言: x 只有不在 y 后才匹配
  • Unicode 属性转义 :匹配符合 Unicode 某种属性的所有字符
    • 正向匹配: \p{PropRule}
    • 反向匹配: \P{PropRule}
    • 限制: \p{...}\P{...} 只对 Unicode 字符有效,使用时需加上 u 修饰符
  • 具名组匹配 :为每组匹配指定名字( ?<GroupName> )
    • 形式: str.exec().groups.GroupName
    • 解构赋值替换
      • 声明: const time = "2017-09-11"、const regexp = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/u
      • 匹配: time.replace(regexp, "$<day>/$<month>/$<year>")

Promise

  • finally() :指定不管最后状态如何都会执行的回调函数

Async

  • 异步迭代器( for-await-of ):,循环等待每个 Promise 对象变为 resolved 状态才进入下一步

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文