JavaScript ES11新特性

news2024/11/19 17:36:20

在这里插入图片描述

文章目录

  • 导文
  • 可选链操作符(Optional Chaining Operator)
  • 空值合并操作符(Nullish Coalescing Operator)
  • 动态 import() 函数
  • BigInt 类型
  • Promise.allSettled()


导文

JavaScript ES11,也被称为ES2020,引入了一些新特性和语言改进

可选链操作符(Optional Chaining Operator)

可选链操作符 ?. 允许在访问可能为 null 或 undefined 的属性或方法时避免出现错误。如果链中的某个属性或方法不存在,则整个表达式的值将为 undefined,而不会抛出异常。
可以使用 ?. 来访问可能为 null 或 undefined 的属性或方法,避免出现错误。例如:

const name = person?.name;
const age = person?.age?.value;

空值合并操作符(Nullish Coalescing Operator)

?? 可以用来提供默认值,当左侧的值为 null 或 undefined 时,使用右侧的值作为结果。
空值合并操作符 ?? 主要用于检查变量是否为 null 或 undefined,如果是,则返回默认值。与逻辑或操作符 || 不同,空值合并操作符只有在变量值为 null 或 undefined 时才会返回默认值,其他 falsy 值(如空字符串、0 或 false)仍然会返回变量本身。例如:

const value = someVariable ?? defaultValue;

动态 import() 函数

能够动态地导入模块,返回一个 Promise 对象,可以在需要时按需加载代码。例如:

import("./module.js")
    .then(module => {
        // 使用导入的模块
    })
    .catch(error => {
        // 处理导入失败的情况
    });

ES11 提供了动态导入模块的能力,通过使用 import() 函数,可以在运行时按需加载模块。这对于异步加载模块、按需加载代码或实现懒加载非常有用。

BigInt 类型

用于表示任意精度的整数,通过在数字字面量后面添加 n,或者通过调用 BigInt() 方法将其转换为 BigInt 类型。例如:

const bigNumber = 1234567890123456789012345678901234567890n;
const converted = BigInt("1234567890123456789012345678901234567890");

BigInt 是一种新的原始数据类型,用于表示任意精度的整数。它允许超过 JavaScript 中 Number 类型所能表示的最大安全整数范围限制。

Promise.allSettled()

接收多个 Promise 对象,并返回一个新的 Promise,当所有的 Promise 完成(不管是成功还是失败)时才会被 resolve。返回的结果是一个数组,每个元素包含原始 Promise 的状态和值。例如:

Promise.allSettled([promise1, promise2])
    .then(results => {
        for (const result of results) {
            console.log(result.status, result.value);
        }
    });

Promise.allSettled() 是一个新的 Promise API,它接收一个 Promise 数组,并在所有 Promise 完成后返回一个新的 Promise,该 Promise 的值是一个包含每个 Promise 状态和结果的对象数组。无论 Promise 是成功还是失败,它都会被解析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经纬度、时差知识整理(理解与应用)

经纬度是经度与纬度的合称组成一个坐标系统,称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。初一的同学在学地理这门课的时候,一上来很快就会学到经纬度这个概念。…

PC市场寒冬,大众还需要PC吗?

PC市场寒冬,大众还需要PC吗? PC(个人电脑)市场从2016年智能手机兴起之时便进入下滑态势,到2020年疫情发生后,居家办公、在线教育等需求曾给PC市场带来连续六个季度的增长。⁴ 好景不长,进入202…

mybatisplus分页total总数为0

mybatisplus分页total总数为0 背景&#xff1a;最近初始化新项目时&#xff0c;使用mybatisplus分页功能发现 records 有记录&#xff0c;但是 total 总是为0&#xff0c;于是开启了一顿“知识寻求”之路SpringBoot版本 <parent><groupId>org.springframework.boo…

Makerbase CANable V2.0 固件升级或替换

第1部分 应用软件与固件 应用软件CANable V2.0CANable V1.0cangaroocandleLight/slcan(支持CAN FD)candleLight/slcan/cantactBUSMASTER V3.2.2candleLightcandleLight/pcan/cantactTSMastercandleLightcandleLight/pcan/cantactPCAN-Explorer 5、pcan view不支持pcancantacts…

一文带你全面理解 MySQL 中的常用函数

0️⃣前言 MySQL是一种常用的关系型数据库管理系统&#xff0c;它提供了许多内置函数来处理数据。本文将介绍MySQL中的各种常用函数&#xff0c;包括字符串函数、日期函数、数学函数、聚合函数等。 文章目录 0️⃣前言1️⃣字符串函数1.1CONCAT函数1.2SUBSTRING函数1.3REPLACE函…

建设一个网站需要多长时间?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言网站建设的基本步骤…

【Leetcode60天带刷】day10栈与队列—— 232.用栈实现队列,225. 用队列实现栈

题目&#xff1a; 232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移…

Spring Boot 集成 Redisson分布式锁

Redisson 是一种基于 Redis 的 Java 驻留集群的分布式对象和服务库&#xff0c;可以为我们提供丰富的分布式锁和线程安全集合的实现。在 Spring Boot 应用程序中使用 Redisson 可以方便地实现分布式应用程序的某些方面&#xff0c;例如分布式锁、分布式集合、分布式事件发布和订…

旷视研究院获 CVPR 2023 自动驾驶国际挑战赛 OpenLane Topology 赛道冠军

近日&#xff0c;为期三个月的 CVPR 2023 自动驾驶国际挑战赛比赛结果揭晓。旷视研究院在OpenLane Topology 赛道中击败 30 余支国内外队伍&#xff0c;夺得冠军。 自动驾驶技术已经渗透到人们的日常生活中&#xff0c;但是传统的感知方法仍不能满足大家对 L5 级自动驾驶的追逐…

傻瓜式教程--基于FPGA的CYUSB3014双向通信

一、概述 CYUSB3014是赛普拉斯在近几年推出的新一代USB3.0的外设控制器&#xff0c;可以解决USB2.0带宽限制&#xff0c;或者单独开发USB协议和驱动的难题。赛普拉斯将CYUSB3014简称为EZ-USB FX3&#xff0c;具有高度的灵活特性&#xff0c;开发人员只需要下载FX3的固件库&…

电脑死机怎么办?试试这5个方法!

案例&#xff1a;我的电脑用着用着突然死机了&#xff0c;我的文档写到了一半没有保存&#xff0c;不知道还能不能找回&#xff1f;电脑死机了怎么办&#xff1f;有没有小伙伴有应对的方法&#xff1f; 随着电脑在我们生活中的普及和广泛应用&#xff0c;电脑死机问题也成为了…

【Python】让 plotly 可视化更上一层:cufflinks 包

文章目录 一、导读二、安装三、使用方法四、数据说明五、折线图六、散点图七、气泡图八、柱状图九、箱型图box十、直方图十一、小提琴图十二、热力图heatmap十三、3d图十四、散点矩阵图十五、子图 一、导读 今天给大家推荐一个高级的可视化神器&#xff1a;cufflinks 学习过可…

智能汽车 | 为什么是高压,为什么800V?

摘要&#xff1a; 在谈到高压储能以及高压动力电池时候&#xff0c;有提到400V的&#xff0c;800V的&#xff0c;还有光伏储能用的1500V的&#xff1b;为什么是高压&#xff1f;本文做个总结。 1、李想看高压系统架构 今春李想的发言&#xff0c;从用户需求&#xff0c;市场需…

vue elementUI封装的无限多级导航菜单(递归循环)

需要封装成两个文件&#xff1a; menu/index.vue <template><el-menuclass"box-card"unique-opened:collapse"$store.state.isCollapse":default-active"$store.state.nowPage"background-color"#2f3332"text-color"…

浅谈电力通信与泛在电力物联网技术的应用与发展

安科瑞 崔丽洁 摘要&#xff1a;随着我国社会经济的快速发展&#xff0c;我国科技实力得到了巨大的提升&#xff0c;当前互联网通信技术在社会中得到了广泛的应用。随着电力通信技术的快速发展与更新&#xff0c;泛在电力物联网建设成为电力通讯发展的重要方向。本文已泛在电力…

股票量化分析工具QTYX使用攻略——每日涨停数据选股(更新2.6.6)

搭建自己的量化系统 如果要长期在市场中立于不败之地&#xff01;必须要形成一套自己的交易系统。 如何学会搭建自己的量化交易系统&#xff1f; 边学习边实战&#xff0c;在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习&#xff0c;也可以用于实战炒股分析的量…

深入剖析Java 8的Stream并行原理,加速你的程序!

大家好&#xff0c;我是小米&#xff0c;在本期技术分享中&#xff0c;我将为大家详细介绍JDK1.8中的Stream以及它的并行操作原理。Stream是Java 8引入的一个强大的数据处理工具&#xff0c;可以让我们以一种简洁、高效的方式对集合数据进行操作和处理。接下来&#xff0c;我们…

C++初阶—模板进阶

目录 1. 非类型模板参数及容器arrary 2. 模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 2.3.3 类模板特化应用示例 3. 模板分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板总结 1. 非类型模板参数及容器a…

K8S:二进制安装K8S(单台master)安装etcd和master

系列文章目录 文章目录 系列文章目录一、安装K8S1.系统初始化配置2.部署docker引擎3.部署etcd集群 二、1.2. 总结 一、安装K8S 1.系统初始化配置 注意&#xff1a;该操作在所有node节点上进行&#xff0c;为k8s集群提供适合的初始化部署环境 #所有节点执行 systemctl stop f…

SSM长白山旅游网站-计算机毕设 附源码87175

SSM长白山旅游网站 目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3 论文结构与章节安排 2 长白山旅游网站系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2…