replaceAll
替换所有匹配的字符
let str = "一二一一三四一";// replace 只会匹配第一项str.replace("一",1) // "1二一一三四一"// replaceAll 匹配所有符合条件的str.replaceAll("一",1) // "1二11三四1"
数字分割
自定义分割位置,遮掩更有利于阅读。在使用的时候 还是number类型
let num2 = 1_234_567_890; // 1234567890let num2 = 1_23456_7890; // 1234567890
逻辑运算符
||=
检测a是否为假,如果是假a = b;否则返回a本身。等价于 a || (a = b)
let a = "";let b = true;let c = "c";a ||= b; // turec ||= b; // c// 等价于let a = "";let b = "b"if(a === "" || a === 0 || a === null || a === undefined || a == false ){a = b;}console.log(a);console.log(a || (a + b))
&&=
检测a值是否为真,如果为真a = b,否则返回本身。等价于a && (a = b)
let a = '';let b = "b"if(a){a = b}console.log(a);console.log(a && (a = b));
??=
判断a是否为null或者undefined,如果是a = b ,否则返回a本身。等价于a ?? (a = b)。??
let a = undefined;let b = "b";if (a === null || a === undefined) {a = b;}console.log(a);console.log( a??b);
Promise
es2021新增Promise.any。执行规则是有一个成就返回成功,如果没有成功的就返回失败,顺便复习一下其他的api
const p1 = Promise.resolve("1");const p2 = Promise.resolve("2");const p3 = Promise.reject("error");const p4 = () => {return new Promise((resolve) => {setTimeout(() => {resolve("ok");}, 1000);});};// 所有都成功才返回成功,否则返回失败Promise.all([p1, p2, p3]).then((res) => console.log(res)).catch((e) => console.log(e));// error// 谁先执行快就返回谁的结果Promise.race([p1,p2,p3]).then((res) => console.log(res)).catch((e) => console.log(e));// 1// es2021新增 不管时间多久,只要有一个成功就返回成功,所有都失败才会返回失败。Promise.any([p3, p4()]).then((res) => console.log(res)).catch((e) => console.log(e));// ok// allSettled 好像是es2020的,他会返回所有的promise状态,以数组形式。Promise.allSettled([p1, p2, p3, p4()]).then((res) => {res.forEach((p) => {console.log(p.status);});}).catch((e) => console.log(e));
