Boomsi's blog

2022

Jul 5, 2022
Mod/Jul 14, 2022

ES 2022

Features .at() 方法,为可索引类新增 可以理解为根据索引取值,当参数为负数时会按照倒序从末尾开始取值,例如 const list = [4, 5, 6, 7, 8] list.at(1) // 5 list.at(-1) // 8 const str = 'abcdefg' str.at(-2) // f polyfill function at(n = 0) { n = Math.trunc(n) if (n < 0) n += this.length; if (n < 0 || n >= this.length) return undefined; return this[n]; } 正则新增参数 d,用以在使用 .exec() 时提供匹配信息 主要使用场景应该是用正则匹配分组后能够拿到匹配的索引段,然后对原字符串操作 const …

more

Mar 2, 2022
Mod/Mar 2, 2022

Web Component 踩坑记

以下是一个简单的 web component <demo-component></demo-component> <template id='demo-component'> <style></style> <div> Web Component </div> </template> <script> window.customElements.define('demo-component', class extends HTMLElement { constructor() { super() const shadow = this.attachShadow({mode: 'closed'}) const target = …

more

2021

Aug 6, 2021
Mod/Oct 14, 2021

ES 2021

Features 数字分隔符(Numeric Separators) Node v12.5.0+ @babel/plugin-proposal-numeric-separator 为提高数字的可读性而加入的新特性 经测试在十六进制、二进制也可使用 <!-- 十进制 --> let decimal = 100_000_000_000 // 100000000000 <!-- 二进制 --> let binary = 0b1_1 // 3 <!-- 十六进制 --> let hex = 0xa_1 // 161 Promise.any() Node 15.0.0+ Promise 静态方法目前四种 Promise.all() Promise.race() Promise.allSettled() Promise.any() …

more

Aug 6, 2021
Mod/Oct 14, 2021

ES 2020

Denamic import() Node 13.2.0+ @babel/plugin-syntax-dynamic-import 在这之前使用 ES6 module 导入模块,都是在文件顶部 import xxx from 'xxx',这样带来的好处有很多,譬如 做静态语法分析 tree-shaking 但是在某些场景,一些特性又是很有用的,这些在静态导入场景没有办法实现 有选择性的 import 从脚本中作为模块导入 延迟加载 现在它支持动态调用了…譬如 if (val) { import("lodash").then(({ default: _ }) => { console.log(_.get(val, "a")); }); } <!-- async 方式 --> async () => { if …

more

© 2019