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)

相关推荐
做前端的娜娜子1 小时前
同一链接实现 PC Web 与移动 H5 自适应
前端·掘金·金石计划
小帅不太帅1 小时前
架构没变、规模没变,DeepSeek V4 Flash 正式版凭什么暴涨 47 分?
前端·aigc·deepseek
jarvisuni1 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
卷福同学3 小时前
AI编程出海第二步:验证关键词能否做站
前端·人工智能·后端
赵庆明老师3 小时前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim
wc883 小时前
微软EDGE浏览器功能学习
前端·学习·edge
破z晓3 小时前
javascript 导出excel表
开发语言·javascript·excel
Csvn4 小时前
🎯 原生 `<dialog>` 元素:终于可以扔掉一半的自定义弹窗组件了?
前端
Csvn4 小时前
🎨 CSS @layer:用「层叠优先级」终结样式打架的世纪难题
前端