ES2021(ES12) - string、Promise、运算子

本系列文章经过重新编排和扩充,已出书为ECMAScript关键30天。原始文章因当时准备时程紧迫,多少有些许错误。为了避免造成读者的困扰,以及配合书籍的内容规划,将会陆续更新本系列文章。
本篇文章在 2021/11/2 已更新。

String.prototype.replaceAll(target,replacer)

透过找到所有匹配传入的正规表达式或是文字内容target,并且取代为传入的字串,或是自订取代行为的replacer

'寂寞的人被给予了思念就会显得更寂寞'.replaceAll('寂寞', '孤单');
// 孤单的人被给予了思念就会显得更孤单

lyrics.replaceAll(/apple/, 'pineapple');
// error: String.prototype.replaceAll called...

lyrics.replaceAll(/apple/gi, 'pineapple');
// "I have a pen. I have an pineapple. Ah, pineapple pen."

Promise.any(promises)

只要有一个非同步操作将状态转为settled,而且操作成功,就能透过resolve函式的呼叫,将结果状态传递到then方法的回呼函式执行。如果都失败,则执行catch方法的回呼函式,并且接收固定的错误讯息。

const p1 = new Promise((resolve, reject) => setTimeout(resolve, 200, 'p1'));
const p2 = new Promise((resolve, reject) => setTimeout(resolve, 300, 'p2'));
const p3 = new Promise((resolve, reject) => setTimeout(reject, 100, 'p3'));

Promise.any([p1, p2, p3])
    .then((result) => console.log('then:', result))
    .catch((error) => console.error('catch:', error));
// then: p1

运算子

数字分隔 _

为了方便阅读位数很长的数字或bigint数值,可以使用多个底线(_)隔在数字之间。

let x = 2_3333_3333;

<<:  第二十七天:脱壳又称脱衣服?!

>>:  [Day27]玉宇江才千古愁-鸡蛋里挑钢筋水泥,异常排除

How to convert RAW to NTFS file system without losing data?

What should you do if the partition on your extern...

Day 1-开始上路罗~!

前言 主要籍由这个主题,熟悉永丰金融API的相关操作。 将系列文章 做一下规划 环境建置 API串接...

[Day23] Infrastructure as code

昨天介绍的 Deployment Manager 可以透过 GUI 与 Command Line 的...

D07 - 听话,给我资料!

既然已经透过 Serial API 取得 Port 存取权限了,再来我们就要来接收并解析资料了。 建...

学会网页制作除了javascript还要会....HTML1

从基本的 HTML、CSS 网页设计开始入门,先学习静态版面设计技巧,再带入动态的 JavaScri...