GIAC-2022sh 学习笔记 | 开放原子开源基金会-贺师俊-ES2022 — JS is dead, long live ecosystem

本文涉及的产品
视频直播,500GB 1个月
简介: GIAC-2022sh 学习笔记 | 开放原子开源基金会-贺师俊-ES2022 — JS is dead, long live ecosystem

es.png

ES2022 — JS is dead, long live ecosystem

贺师俊 @ GIAC 2022-11-18

知乎 贺师俊 微博 @johnhax

GitHub @hax

https://johnhax.net/2022/JS-is-dead/slide#0

关于我

Web前端和JS语言

20多年发展历程

见证人和参与者

2019年6月~2021年4月

360集团 TC39代表 2021年4月起 特邀专家

TC39:JS语言标准委员会

ES3 -> ES5 -> ES6 (ES2015)

自2015年起每年6月发布ES20XX

ES2022

Finished proposals

Error cause

Error cause (ES2022) 吴成忠(@legendecas),阿里巴巴

识别问题

  • 不直接暴露低层操作的错误
  • 链式错误模式:每个层次的错误提供合适的上下文信息并包装更低层的错误
  • 目前不是做不到,但是很麻烦
  • 缺乏标准的做法,导致日志和调试工具无法提供帮助

解决方案

newError(message, cause)// ❌

newError(message,{cause})// ✅

向前兼容性

向后兼容性(可扩展性)

个人评价:很有价值 有些小问题但工程上容易解决或无伤大雅

findLast/findLastIndex

findLast/findLastIndex (ES2023) 王文璐(@Kingwl),前微软中国

识别问题

解决方案

// find

array.findLast(n=> n.value%2===1);// { value: 3 }

// findIndex

array.findLastIndex(n=> n.value%2===1);// 2

array.findLastIndex(n=> n.value===42);// -1

动机和场景(灵魂之问) 为什么用库不行?

  • padStart / padEnd / trimStart / trimEnd
  • Performance
  • 库被引用的频繁程度
  • API的完整性

计科两大难 命名与缓存

  • findRight/findIndexRight
  • findEnd/findIndexEnd
  • findLast/findIndexLast
  • findLast/findLastIndex

个人评价:较有价值,且没有缺点

RegExp Match Indices

RegExp Match Indices (ES2022) /pattern/d 和 .indices

Ron Buckton,微软

识别问题

解决方案

for(let m of techConfs.matchAll(/date:\s*(.+)/gd)){

  console.log(m)

}

// ['date: 2022-11-18', '2022-11-18', index: 9,

// indices: [[9, 25], [15, 25]],

// ...]

// ['date: 2022-11-22', '2022-11-22', index: 44,

// indices: [[44, 60], [50, 60]],

// ...]

为什么要额外的 d ? 因为性能

d 的含义?

inDices

个人评价:有价值

但用例较少,性价比不高 正则本身就有过度复杂和滥用问题

写在最后

原文很长, 建议移步原文查看

能一览 JS语言标准委员会 的工作, 也是一种不错的体验

目录
相关文章
|
4月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
314 0
|
4天前
|
JavaScript Linux 开发者
一个用于管理多个 Node.js 版本的安装和切换开源工具
【9月更文挑战第14天】nvm(Node Version Manager)是一个开源工具,用于便捷地管理多个 Node.js 版本。其特点包括:版本安装便捷,支持 LTS 和最新版本;版本切换简单,不影响开发流程;多平台支持,包括 Windows、macOS 和 Linux;社区活跃,持续更新。通过 nvm,开发者可以轻松安装、切换和管理不同项目的 Node.js 版本,提高开发效率。
|
10天前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
1月前
|
JavaScript Linux 开发工具
开源项目:使用 Atom-Electron 和 Vue.js 制作的简单 RSS 阅读器!!
开源项目:使用 Atom-Electron 和 Vue.js 制作的简单 RSS 阅读器!!
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
31 0
|
4月前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
50 0
webgl学习笔记3_javascript的HTML DOM
|
4月前
|
数据可视化 JavaScript 前端开发
Echarts是一个开源的JavaScript可视化库,用于创建各种类型的图表
Echarts是JavaScript的开源可视化库,Python通过Pyecharts库可调用它来绘制图表。示例展示了如何用Pyecharts创建柱状图:定义图表对象,设置标题和坐标轴,添加X轴、Y轴数据,最后渲染展示。Pyecharts还支持折线图、散点图、饼图等多种图表类型,更多详情可查阅官方文档。
108 0
|
4月前
|
JavaScript 前端开发 Java
webgl学习笔记2_javascript基础快速学习
webgl学习笔记2_javascript基础快速学习
40 0
|
4月前
|
设计模式 前端开发 JavaScript
开源专访:Strve.js框架作者Vam
开源专访:Strve.js框架作者Vam
74 2
|
4月前
|
前端开发 JavaScript API
JavaScript学习笔记(一)promise与async
JavaScript学习笔记(一)promise与async