replaceAll

替换所有匹配的字符

  1. let str = "一二一一三四一";
  2. // replace 只会匹配第一项
  3. str.replace("一",1) // "1二一一三四一"
  4. // replaceAll 匹配所有符合条件的
  5. str.replaceAll("一",1) // "1二11三四1"

数字分割

自定义分割位置,遮掩更有利于阅读。在使用的时候 还是number类型

  1. let num2 = 1_234_567_890; // 1234567890
  2. let num2 = 1_23456_7890; // 1234567890

逻辑运算符

接下来前后两个变量通过a,b表示

||=

检测a是否为,如果是假a = b;否则返回a本身。等价于 a || (a = b)

  1. let a = "";
  2. let b = true;
  3. let c = "c";
  4. a ||= b; // ture
  5. c ||= b; // c
  6. // 等价于
  7. let a = "";
  8. let b = "b"
  9. if(a === "" || a === 0 || a === null || a === undefined || a == false ){
  10. a = b;
  11. }
  12. console.log(a);
  13. console.log(a || (a + b))

&&=

检测a值是否为真,如果为真a = b,否则返回本身。等价于a && (a = b)

  1. let a = '';
  2. let b = "b"
  3. if(a){
  4. a = b
  5. }
  6. console.log(a);
  7. console.log(a && (a = b));

??=

判断a是否为null或者undefined,如果是a = b ,否则返回a本身。等价于a ?? (a = b)。??

  1. let a = undefined;
  2. let b = "b";
  3. if (a === null || a === undefined) {
  4. a = b;
  5. }
  6. console.log(a);
  7. console.log( a??b);

Promise

es2021新增Promise.any。执行规则是有一个成就返回成功,如果没有成功的就返回失败,顺便复习一下其他的api

  1. const p1 = Promise.resolve("1");
  2. const p2 = Promise.resolve("2");
  3. const p3 = Promise.reject("error");
  4. const p4 = () => {
  5. return new Promise((resolve) => {
  6. setTimeout(() => {
  7. resolve("ok");
  8. }, 1000);
  9. });
  10. };
  11. // 所有都成功才返回成功,否则返回失败
  12. Promise.all([p1, p2, p3])
  13. .then((res) => console.log(res))
  14. .catch((e) => console.log(e));
  15. // error
  16. // 谁先执行快就返回谁的结果
  17. Promise.race([p1,p2,p3])
  18. .then((res) => console.log(res))
  19. .catch((e) => console.log(e));
  20. // 1
  21. // es2021新增 不管时间多久,只要有一个成功就返回成功,所有都失败才会返回失败。
  22. Promise.any([p3, p4()])
  23. .then((res) => console.log(res))
  24. .catch((e) => console.log(e));
  25. // ok
  26. // allSettled 好像是es2020的,他会返回所有的promise状态,以数组形式。
  27. Promise.allSettled([p1, p2, p3, p4()])
  28. .then((res) => {
  29. res.forEach((p) => {
  30. console.log(p.status);
  31. });
  32. })
  33. .catch((e) => console.log(e));