文末有其他篇链接

Es11

1、私有属性

用 #+属性名 声明私有属性

class Rectangle {#height = 0;#width;constructor(height, width) {this.#height = height;this.#width = width;}
}

2、Promise.allSettled()

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

const promise1 = Promise.resolve(3);
const promise2 = new Promise((resolve, reject) => setTimeout(reject, 100, 'foo'));
const promises = [promise1, promise2];Promise.allSettled(promises).then((results) => results.forEach((result) => console.log(result.status)));// expected output:
// "fulfilled"
// "rejected"

3、字符串方法扩展

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

const regexp = /t(e)(st(\d?))/g;
const str = 'test1test2';const array = [...str.matchAll(regexp)];console.log(array[0]);
// expected output: Array ["test1", "e", "st1", "1"]console.log(array[1]);
// expected output: Array ["test2", "e", "st2", "2"]

4、可选链操作符

可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(nullish ) (null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。
当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式更短、更简明。在探索一个对象的内容时,如果不能确定哪些属性必定存在,可选链操作符也是很有帮助的。

const adventurer = {name: 'Alice',cat: {name: 'Dinah'}
};const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefinedconsole.log(adventurer.someNonExistentMethod?.());
// expected output: undefined

5、动态import

标准用法的 import 导入的模块是静态的,会使所有被导入的模块,在加载时就被编译(无法做到按需编译,降低首页加载速度)。有些场景中,你可能希望根据条件导入模块或者按需导入模块,这时你可以使用动态导入代替静态导入。

关键字 import 可以像调用函数一样来动态的导入模块。以这种方式调用,将返回一个 promise。

import('/modules/my-module.js').then((module) => {// Do something with the module.});

这种使用方式也支持 await 关键字。

let module = await import('/modules/my-module.js');

6、BigInt

BigInt 是一种内置对象,它提供了一种方法来表示大于 2^53 - 1 的整数。这原本是 Javascript中可以用 Number 表示的最大数字。BigInt 可以表示任意大的整数。
可以用在一个整数字面量后面加 n 的方式定义一个 BigInt ,如:10n,或者调用函数 BigInt()(但不包含 new 运算符)并传递一个整数值或字符串值。

const theBiggestInt = 9007199254740991n;const alsoHuge = BigInt(9007199254740991);
// ↪ 9007199254740991nconst hugeString = BigInt("9007199254740991");
// ↪ 9007199254740991nconst hugeHex = BigInt("0x1fffffffffffff");
// ↪ 9007199254740991nconst hugeBin = BigInt("0b11111111111111111111111111111111111111111111111111111");
// ↪ 9007199254740991n

7、全局属性globalThis

全局属性 globalThis 包含全局的 this 值,类似于全局对象(global object)。
在以前,从不同的 JavaScript 环境中获取全局对象需要不同的语句。在 Web 中,可以通过 window、self 或者 frames 取到全局对象,但是在 Web Workers 中,只有 self 可以。在 Node.js 中,它们都无法获取,必须使用 global。
使用:

function canMakeHTTPRequest() {return typeof globalThis.XMLHttpRequest === 'function';
}console.log(canMakeHTTPRequest());
// output (in a browser): true

在这里 globalThis 等于 window

上一篇:最全Es6 - Es11( Es10篇)

最全Es6 - Es11( Es11篇)相关推荐

  1. Retrofit全攻略——进阶篇

    最近事比较多,距离上次写文章已经过去了一个月了.上一篇文章Retrofit全攻略--基础篇 介绍了Retrofit的基础用法,这篇文章介绍点进阶的用法. 打印网络日志 在开发阶段,为了方便调试,我们需 ...

  2. 从零开始的全栈工程师——html篇1

    全栈工程师也可以叫web 前端 H5主要是网站 app 小程序 公众号这一块 HTML篇 html(超文本标记语言,标记通用标记语言下的一个应用.) "超文本"就是指页面内可以包含 ...

  3. 从零开始的全栈工程师——html篇1.2

    起名方式与CSS 一.起名方式(起名方式也叫选择器) 起名的目的是为了给标签添加属性 常见的3种选择器有 标签选择器   id选择器(使用的时候加#)    class选择器(使用的时候加.) 样式的 ...

  4. 【2022持续更新】大数据最全知识点整理-HBase篇

    大数据最全知识点整理-HBase篇 基础问题: 1.Hbase是什么 2.Hbase架构 3.Hbase数据模型 4.Hbase和hive的区别 5.Hbase特点 6.数据同样存在HDFS,为什么H ...

  5. 国企央企OFFER收割全攻略 | 银行篇之差额体检答疑

    文章目录 国企央企OFFER收割全攻略 | 银行篇之差额体检&答疑 6 体检 6.1 体检是差额体检,是招聘的一个环节 6.2 体检的流程 6.3 体检的注意事项 7 答疑 8 结束语 题外话 ...

  6. 【2022持续更新】大数据最全知识点整理-HDFS篇

    大数据最全知识点整理-HDFS篇 导语 基础知识 1.Hadoop有几种部署方式 2.HDFS的各进程名称与功能 3.HDFS读流程 4.HDFS写流程 5.HDFS写文件时节点挂机处理 6.HDFS ...

  7. DoTween全解析(入门篇)

    DoTween全解析(入门篇) 概述: DoTween,Itween,这些名字作为一个Unity开发人员听起来并不陌生,它们在动画方面表现出了令人折服的能力,今天我带着大家来一起认识一下这款插件. 首 ...

  8. 国企央企OFFER收割全攻略 | 银行篇之面试

    文章目录 国企央企OFFER收割全攻略 | 银行篇之面试 5 面试 5.1 银行面试的考察内容与考察形式 5.2 不同银行面试的面试内容 5.3 银行面试流程与常考问题 5.4 如何准备银行面试 5. ...

  9. 国企央企OFFER收割全攻略 | 银行篇之笔试

    文章目录 国企央企OFFER收割全攻略 | 银行篇之笔试 4 笔试 4.1 银行笔试的考察内容与题型 4.2 不同银行笔试的侧重点 4.3 如何准备银行笔试 4.4 笔试的注意事项 小结 国企央企OF ...

最新文章

  1. python序列_科学网—Python:序列(字符串、列表、元组)和序列函数 - 刘洋洋的博文...
  2. ubuntu 安装 spconv
  3. 《仙剑奇侠传online》游戏后台优化分析:CPU、内存与启动时间
  4. linux php运行用户名和密码,Linux实例(一)使用用户名密码验证连接Linux
  5. 「LibreOJ NOI Round #2」不等关系 (dp+NTT分治)
  6. catia linux下载64位,CATIA V5 CATSysDemon.exe缓冲区溢出漏洞
  7. android中viewpager+fragment,Android开发之ViewPager+Fragment
  8. 容器编排技术 -- Kubernetes Replica Sets
  9. 深入解读 Entity Framework 4.0和4.1
  10. Java架构师成长之道之计算机组成原理组成篇
  11. Linux/Unix系统下nginx+php安装简明教程
  12. 移动互联应用技术和计算机网络技术,移动互联应用技术团队介绍
  13. openCV利用航拍相机从底部向上扫描物体拼接全景图
  14. 一切成功源于积累——20140219 混沌理论三原则
  15. 简述固定资产的全生命周期管理流程
  16. shape_predictor_68_face_landmarks.dat 下载地址
  17. 后台管理系统UI选型推荐
  18. 保护信息安全,实名认证该怎么选?
  19. Oracle的导入命令impdp
  20. 设计模式之 State(状态模式)通俗理解

热门文章

  1. 简单描述GC垃圾标记算法和垃圾收集算法
  2. 使用vtwinfx插件时fcpx意外退出_FCPX插件 60个自媒体文字标题字幕条Motion Graphics Pack...
  3. 计算机vb考试能插u盘么,08年计算机二级VisualBasic辅导:用VB打开任意盘(硬盘/U盘/光盘)的文件...
  4. Quartus 11.0 Internal Error veriname_elab.cpp
  5. 华为Avago SAS3508 CentOS系统安装
  6. 职业规划 (很不错的文章)
  7. 基于 ADXL335 加速度计的手势控制机器人
  8. 大模型落地实践系列四、大模型研发应用的节奏?
  9. Hishop网店系统
  10. sql汉字拼音首字母