Js: ES新特性(二)

一、ES10新特性

1、对象扩展方法

Object.fromEntries(): 将二维数组转换为对象

2、字符串扩展方法

  1. trimStart(): 清除左侧空格

  2. trimEnd(): 清除右侧空格

3、数组扩展方法

  1. flat(): 将多维数组转化为低维数组

  2. flatMap(): 首先使用映射函数映射每个元素,然后将结果压缩成一个新数组

4、Symbol的扩展

Symbol.description: 得到Symbol传入的字符串

二、ES11的新特性

1、 私有属性

语法:

复制代码
class Person {
  // 公有属性
  name;
  // 私有属性
  #age;
  #weight;
  // 构造方法
  constructor(name, age, weight) {
      this.name = name;
      this.#age = age;
      this.#weight = weight;
  }
}

2、 Promise 扩展方法

  1. Promise.all(): 接收一个promise的iterable类型的输入,并且只返回一个Promise实例, 那个输入的所有promise的resolve回调的结果是一个数组

  2. allSettled(): 返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组,每个对象表示对应的promise结果

3、 字符串扩展

String.prototype.matchAll(): 返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器

4、可选链操作符

语法:

复制代码
// 返回config.db.host数据,若存在则返回,若不存在则返回undefined
let doHost = config?.db?.host; 
// 等同与: let doHost = config && config.db && config.db.host;

5、 动态import

语法:

复制代码
// 动态引入xxxAAA文件,并在加载完成后调用xxxBBB方法
import('xxxAAA.js').then(module => {
    module.xxxBBB();
});

6、BigInt类型

定义: BigInt 是一种内置对象,它提供了一种方法来表示大于 2^53 - 1 的整数

语法:

复制代码
let a = 512n; // 表示数值为512的BigInt类型
let b = 123;
BigInt(b); // 函数转换

7、绝对全局变量globalThis

定义: 全局属性 globalThis 包含全局的 this 值,类似于全局对象(global object)

相关推荐
爱勇宝5 小时前
大多数人不是在使用 AI 赚钱,而是在帮 AI 公司赚钱
前端·后端·程序员
冬奇Lab5 小时前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
To_OC7 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
IT_陈寒10 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
追逐时光者11 小时前
别再满网找零散工具了,腾讯 QQ 浏览器这个“帮小忙”工具箱真能省时间
前端·后端
To_OC13 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
Asmewill13 小时前
grep&curl命令学习笔记
前端
stringwu13 小时前
Flutter 开发必备:MVI 架构的高效实现指南
前端·flutter
用户21366100357214 小时前
Vue2组件化开发与父子通信
前端·vue.js
Momo__15 小时前
TypeScript satisfies 操作符——比 as 更安全的类型守门员
前端·typescript