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)

相关推荐
Mintopia4 小时前
从“像素对齐”到“体验对齐”:设计‑代码一致到底怎么验收(简单版)
前端·人工智能
Mintopia4 小时前
别再吹“全自动”:一份 AI‑Coding 上线前的灰度与回滚手册(简单版)
前端·人工智能
张拭心4 小时前
什么是 Harness Engineering,为什么最近都在说它
前端·ai编程·前端工程化
minglie14 小时前
lean4环境安装
开发语言·前端
Ulyanov4 小时前
基于ttk的Python现代化GUI开发指南
开发语言·前端·python·tkinter·系统设计
鹏程十八少4 小时前
6. Android Shadow与众不同?一文解决插件化四大核心难题:ClassLoader冲突、Activity代理、资源隔离、动态更新(源码分析上)
android·前端·面试
阿奇__4 小时前
微信 H5 缓存控制:后端重定向 & 前端强制刷新
前端·缓存
yoothey4 小时前
我对Java Web开发中多线程的困惑
java·开发语言·前端
周淳APP4 小时前
【React之Hooks原理、组件、状态管理浅谈】
开发语言·前端·javascript