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)

相关推荐
tedcloud1232 小时前
UI-TARS-desktop部署教程:构建AI桌面自动化系统
服务器·前端·人工智能·ui·自动化·github
UXbot5 小时前
AI原型设计工具如何支持团队协作与快速迭代
前端·交互·个人开发·ai编程·原型模式
ZC跨境爬虫6 小时前
跟着MDN学HTML_day_48:(Node接口)
前端·javascript·ui·html·音视频
PieroPc8 小时前
CAMWATCH — 局域网摄像头监控系统 Fastapi + html
前端·python·html·fastapi·监控
巴巴博一9 小时前
2026 最新:Trae / Cursor 一键接入 taste-skill 完整教程(让 AI 前端告别“AI 味”)
前端·ai·ai编程
kyriewen9 小时前
半夜三点线上崩了,AI替我背了锅——用AI排错,五分钟定位三年老bug
前端·javascript·ai编程
kyriewen9 小时前
我让 AI 当了 24 小时全年无休的“毒舌考官”
前端·ci/cd·ai编程
hexu_blog9 小时前
vue+java实现图片批量压缩
java·前端·vue.js
IT_陈寒10 小时前
为什么你应该学习JavaScript?
前端·人工智能·后端