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)

相关推荐
仿生狮子2 小时前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
夏幻灵6 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
Lvan的前端笔记6 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习6 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194057 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风8 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn9 小时前
框架性能优化
前端
回眸&啤酒鸭10 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户693717500138411 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员11 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端