常用ES标准

ES2015:

1.块级作用域const、let
const声明对象可修改属性,但不能重新赋值对象。

2.解构赋值

const arr = [a1, a2, a3];
const [a1, ...rest] = arr; // rest = [a2, a3];

3.模板字符串``

const date = "星期一";
console.log(`今天是${date};`);

4.函数参数默认值

func(a = 1, ...rest) {}

5.箭头函数

const func = () => {};

6.对象代理proxy

const personProxy = new Proxy(person, {get() {},set() {}
});
// 劫持对象修改其属性

7.Object.assign、Object.is

// 对象合并或赋值
const obj = Object.assign(o1, o2);// 对象判断
NaN === NaN; // false;
Object.is(NaN, NaN); // true;

8.异步解决方案Promise

new Promise((resolve, reject) => {resolve(data);
)).then((data) => {})
.then...

9.类class、extents、super

10.数据结构Set、Map、Symbol

// 不重复集合Set;
// 有序键值对,键不只是字符串,可以是任意值集合Map;
// 唯一值Symbol;
Symbol('symbol') === Symbol('symbol'); // false;
Symbol.for('symbol') === Symbol('symbol'); // true; 全局表

11.for…of遍历

for (const item of set) {}
for (const [item, value] of map) {}

12.模块化module

export { num, numFunc };
import { num as n, numFunc } from './common.js';

13.字符串方法startsWith、endsWith、includes

ES2016

1.数组includes方法

2.指数运算符**

2**3 // Math.pow(2, 3);

ES2017

1.异步async await

async func () => {await getSomeApi();
};

2.对象方法Object.values()、Object.entries
类似于Object.keys()返回对象所有的键、值、键值对数组。

3.字符串方法padStart()、padEnd()

// 补全字符串开头和结尾
padStart(3, '1'); // 001

ES2018

1.异步迭代

for await(const item of items) {}

2.promise.finally

.catch()
.finally(() => {});

3.对象rest

const obj = {a: 1, b: 2, c: 3};
const {a, ...rest} = obj; // rest = {b: 2, c: 3};
const obj2 = {...rest, d: 4};

4.正则命名捕获组和断言

// ?<name>
const reg = /(?<year>/d{4})-(?<month>\d{2})/;
const result = reg.exec('2023-06'); // result.groups = {year: '2023', month: '06'};
// ?= 正向断言
// ?<= 反向断言
'Paul666'.match(/Paul?6+/); // Paul666
'Paul666'.match(/Paul(?=6+)/); // Paul
'Paul666'.match(/(?<=Paul)6+/); // 666

ES2019

1.数组扁平化

const arr = [[1], [2], [[3], [4]];
arr.flat(2); // [1, 2, 3, 4];
arr.flatMap(x => x); // [1, 2, [3], [4]];

2.Object.fromEntries()、Object.entries()

// 对象数组转化
const arr = [['age', '18'], ['name', 'jack']];
const obj = Object.fromEntries(arr); // {age: '18', name: 'jack'};
const arr = Object.entries(obj); // [['age', '18'], ['name', 'jack']];

3.字符串trimStart()、trimEnd()
去除前后的空格

4.Symbol.description

// 方便获取symbol描述
const symbol = Symbol('a');
symbol.description; // a;

5.catch参数可选
// 当我们catch不需要使用绑定参数时

try {} catch {};

ES2020

1.字符串matchAll
匹配所有符合条件的子串,返回匹配情况的数组。

2.import动态导入

// 需要该模块时才会加载,返回一个promise对象。
import('./common.js').then(module => {});

3.Bigint

// 针对js大数精度丢失问题
7897489489448464464n;
Bigint('7897489489448464464');

4.promise.allSettled

promise.all // 所有的promise对象均成功才执行then;
promise.allSettled // 所有的promise对象均有出现结果(成功或失败);
promise.any // 只要有一个promise对象成功,则返回该promise对象;全部失败则返回AggregateError对象;
promise.race // 跑的快的promise对象的结果(成功或失败);

5.统一全局对象globalThis

// 不同环境下的全局this对象
window === globalThis; // 浏览器
global === globalThis; // node.js

6.可选链?
防止类型报错,不存在则返回undefined。

7.空值合并??

0 || 1; // 1 左侧为假返回右值;
0 ?? 1; // 0 左侧为null或undefined,才返回右值;

ES2021

1.字符串replaceAll
全部替换

2.promise.any

3.数字分隔符

const num = 1_000_000_000; // 更清晰;

ES2022

1.正则修饰符/d

/i // 忽略大小写;
/g // 全局;
/m // 多行;
/d // 返回indices表示匹配的下标开始和结束位置索引;

2.Object.hasOwn()
判断对象是否有子鼠星,比hasOwnProperty()(obj=null时会报错)安全;

3.cause自定义错误

throw new Error('failed', {cause: msg});
ES2023

1.HashBang语法

// 指定脚本文件的解释器
// #!/usr/bin/env node
console.log('js');

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

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

相关文章

MCGS学习——用户管理

用户管理介绍 用户管理主要是为了实现触摸屏的安全操作&#xff0c;工业过程控制中&#xff0c;应该尽量避免由于人为的误操作所引发的故障或事故&#xff0c;而某些失误带来的后果是致命的&#xff1b;通过用户管理严格限制各类操作的权限&#xff0c;使不具备操作资格的人员…

【云开发笔记No.14】持续交付、持续部署、持续交付流水线

一、持续交付 持续交付&#xff08;Continuous Delivery&#xff09;是一种软件开发方法论&#xff0c;它强调在开发过程中&#xff0c;软件可以在任何时间以最小的努力被部署到生产环境。其核心是确保代码更改在经过一系列自动化测试后&#xff0c;能够快速、安全地集成到主代…

快速入门go语言

环境搭建 编译器安装 1、编译器下载地址 2、打开命令行模式&#xff0c;输入go version ide安装 ide下载地址 依赖管理 goproxy 1、goproxy代理地址 // 阿里云 https://mirrors.aliyun.com/goproxy // 微软 https://goproxy.io // 七牛 https://goproxy.cn 2、ide配置g…

蓝桥杯G431RBT6——定时器中使用led冲突以及led与lcd冲突等一系列问题

本文是解决 同时在 定时器中点灯 与 LCD屏幕显示 冲突异常的问题 我们大家都知道&#xff0c;G431RBT6开发板上led与lcd是冲突的&#xff0c;所以在lcd.c文件中的这三个函数中 void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue) void LCD_WriteRAM_Prepare(void) void LCD_Wr…

在 Express 中使用 JWT

1. 安装 JWT 相关的包 运行下面两个命令&#xff0c;安装如下两个 JWT 相关的包 npm i jsonwebtoken express-jwt jsonwebtoken 用于生成 JWT 字符串 express-jwt 用于将 JWT 字符串解析还原成 JSON 对象 2. 导入 JWT 相关的包 // 导入 const jwt require(jsonwebtoken) con…

Elasticsearch(15) multi_match的使用

elasticsearch version&#xff1a; 7.10.1 multi_match是Elasticsearch中的一种查询类型&#xff0c;允许在一个或多个字段上执行全文本搜索&#xff0c;并合并各个字段的结果得分。这种查询有助于实现跨多个字段的统一搜索体验。 语法 {"query": {"multi_m…

深入剖析Hadoop面试题(75个问题,1.5万字)

在大数据时代,Hadoop作为分布式存储与计算的基石,已成为众多企业构建数据处理平台的首选。对于追求大数据岗位的专业人士来说,熟练掌握Hadoop的原理和应用是必备技能。本文将深入探讨多个Hadoop面试题,并提供详尽的参考答案,助你在面试中脱颖而出。 介绍下Hadoop Hadoop是…

vue+Echarts实现多设备状态甘特图

目录 1.效果图 2.代码 3.注意事项 Apache ECharts ECharts官网&#xff0c;可在“快速上手”处查看详细安装方法 1.效果图 可鼠标滚轮图表和拉动下方蓝色的条条调节时间细节哦 &#xff08;注&#xff1a;最后一个设备没有数据&#xff0c;所以不显示任何矩形&#xff09;…

【】(综合练习)博客系统

在之前的学些中&#xff0c;我们掌握了Spring框架和MyBatis的基本使用&#xff0c;接下来 我们就要结合之前我们所学的知识&#xff0c;做出一个项目出来 1.前期准备 当我们接触到一个项目时&#xff0c;我们需要对其作出准备&#xff0c;那么正规的准备是怎么样的呢 1.了解需求…

探讨大数据、云计算与物联网的融合与发展

随着信息技术的飞速发展&#xff0c;大数据、云计算和物联网已经成为了科技领域的三大热点。它们各自具有独特的特点和应用领域&#xff0c;但同时也存在着紧密的联系。本文将详细阐述大数据的四个基本特征&#xff0c;大数据产业的多个层面&#xff0c;以及大数据、云计算和物…

深入探索C语言动态内存分配:释放你的程序潜力

&#x1f308;大家好&#xff01;我是Kevin&#xff0c;蠢蠢大一幼崽&#xff0c;很高兴你们可以来阅读我的博客&#xff01; &#x1f31f;我热衷于分享&#x1f58a;学习经验&#xff0c;&#x1f3eb;多彩生活&#xff0c;精彩足球赛事⚽ &#x1f31f;感谢大家的支持&#…

[激光原理与应用-80]:PLC通信协议之-OMRON欧姆龙FINS TCP通信协议详细解析

目录 一、OMRON欧姆龙 PLC简介 1.1 OMRON欧姆龙 PLC 1.2 OMRON欧姆龙 PLC通信协议简介 1.3 通信架构 二、欧姆龙FINS协议简介 2.1 简介 2.2 协议分层 2.3 OMRON&#xff08;欧姆龙&#xff09;FINS协议的本质 2.4 OMRON&#xff08;欧姆龙&#xff09;FINS&#xff08…

请说明Vue父组件向子组件传值的方法

在Vue中&#xff0c;父组件向子组件传值主要通过props来实现。props是Vue组件之间传递数据的一种基本方式&#xff0c;允许父组件向子组件传递数据。 下面是一个简单的示例&#xff0c;说明如何在Vue中通过props从父组件向子组件传递数据&#xff1a; <template> <…

LeetCode热题Hot100-两数相加

一刷一刷 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不…

Python爬虫之正则表达式与httpx的使用与案例

三、正则表达式 1、实例 模式描述\w匹配字母、数字以及下划线\W匹配不是字母、数字以及下划线\s匹配任意空白字符&#xff0c;等价于[\t\n\r\f]\S匹配任意非空字符\d匹配任意数字&#xff0c;等价于[0-9]\D匹配任意非数字的字符\A匹配字符串开头\Z匹配字符串结尾。如果存在换…

C++中的流

前言 在 C 中&#xff0c;流&#xff08;stream&#xff09;是一种数据传输的抽象概念&#xff0c;用于在程序中对输入和输出进行操作。流分为输入流和输出流&#xff0c;允许数据在程序和外部设备&#xff08;如键盘、屏幕、文件&#xff09;之间进行传输。输入流用于从外部获…

边缘计算【智能+安全检测】系列教程-- Jeton Agx Orin 基础环境搭建

1 .前期准备 Jetson Agx Orin 比Jetson Agx Orin Xavier的算力要高&#xff0c;性能要好通常用来做自动驾驶的AI推理&#xff0c;具体外观如下图 1.刷机软件sdkmanager&#xff1a;下载链接 NVIDIA账号需要注册&#xff0c;正常一步一步往下走就行。在ubuntu18以上的系统安…

Verilog刷题笔记45

题目&#xff1a;Given the finite state machine circuit as shown, assume that the D flip-flops are initially reset to zero before the machine begins. Build this circuit. 解题&#xff1a; module top_module (input clk,input x,output z ); wire [2:0]size;dtou…

第一篇:概述、 目录、适用范围及术语 --- IAB/MRC《增强现实(AR)广告(效果)测量指南1.0 》

第一篇&#xff1a;概述、目录、适用范围及术语 - IAB与MRC及《增强现实广告效果测量指南1.0》 --- 我为什么要翻译美国IAB科技公司系列标准 ​​​​​​​​​​​​​​ 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效…

WSL+Ununtu+Docker踩坑指南

Ubuntu安装docker后启动不了&#xff0c;解决问题如下&#xff1a; 1.在wsl中安装Ubuntu&#xff0c;在Ubuntu中安装docker&#xff0c;此时用的Ubuntu的版本为Ubuntu-22.04发行版&#xff0c;安装docker教程如下。 https://docs.docker.com/engine/install/ubuntu/2. 完成安…