常用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');
相关文章:
常用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…...
Http中Host,Referer,Origin和Access-Control-Allow-Origin
Http中Host,Referer,Origin和Access-Control-Allow-Origin 文章目录 Http中Host,Referer,Origin和Access-Control-Allow-OriginHost定义特性作用 Referer定义特性作用 Origin定义特性作用 Access-Control-Allow-Origin定义特性作用…...
UDP实现聊天室
现象: 源码: 服务器: #include<myhead.h>struct sockaddr_in serveraddr,caddr; enum type_t//枚举 {Login,Chat,Quit, }; typedef struct MSG {char type;//L C Qchar name[32];//char text[128];// }msg_t;typedef struct NODE//链…...
排序算法:如冒泡排序、插入排序、选择排序、快速排序、归并排序
冒泡排序(Bubble Sort):冒泡排序是一种简单的排序算法。它通过反复交换相邻的元素,将最大的元素逐步“浮”到数组的末尾。基本思想是每次比较相邻的两个元素,如果顺序不对就进行交换,直到整个数组有序。时间…...
深度学习pytorch——GPU加速(持续更新)
使用 .to(device),以前使用 .cuda() ,但是现在基本不使用了。 代码示例: 查看电脑GPU运行情况: 使用Ctrl Shift ESC快捷键:...
StringRedisTemplate
Redis快速入门 3.2.3.StringRedisTemplate 为了节省内存空间,我们可以不使用JSON序列化器来处理value,而是统一使用String序列化器,要求只能存储String类型的key和value。当需要存储Java对象时,手动完成对象的序列化和反序列化。…...
Linux cp、mv命令显示进度条
1.advcpmv 平常使用cp 拷贝大文件时,看不到多久可以完成,虽然加上-v参数也只能看到正在拷贝文件,那就使用以下方法实现 git clone https://github.com/jarun/advcpmv.git cd advcpmv/ bash install.shmv ./advcp /usr/local/bin/ mv ./advmv …...
在Java中使用Apache POI保留Excel样式合并多个工作簿
背景 在日常工作中,我们经常需要将多个Excel文件合并成一个,同时保留原有的样式和格式。Apache POI是一个流行的Java库,用于读取和写入Microsoft Office格式的文件,包括Excel。然而,仅仅使用Apache POI的基本功能进行…...
Nomachine远程黑屏通用处理方法
Nomachine远程黑屏通用处理方法 文章目录 前言正文解决步骤 总结 前言 NoMachine是一种远程桌面软件,它允许用户通过互联网或局域网连接到远程计算机,并在本地计算机上使用远程计算机的桌面环境和应用程序。它提供了高性能的图形渲染和低延迟的响应&…...
基于51单片机数控直流电压源proteus仿真LCD显示+程序+设计报告+讲解视频
基于51单片机数控直流电压源proteus仿真LCD显示( proteus仿真程序设计报告讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0072 讲解视频 基于51单片机数控直流电压源proteus仿真程序…...
[Linux]文件缓冲区
文件fd 输出重定向除了用dup2()改变数组下标外,还可以用命令来完成 所有的命令执行,都必须有操作系统将其运行起来变成进程,然后根据>>, <<来判断是输入重定向,还是输出重定向。 缓冲区 之所以有缓冲区࿰…...
ARM:按键中断
key_inc.c #include"key_inc.h"void key1_it_config(){//使能GPIOF外设时钟RCC->MP_AHB4ENSETR | (0x1<<5);//将PF9设置为输入模式GPIOF->MODER & (~(0x3<<18));//设置由PF9管脚产生EXTI9事件EXTI->EXTICR3 & (~(0XFF<<8));EXTI…...
JavaScript高级(五)--柯西化函数
柯里化 定义 首先,我们参照维基百科给出的定义: 在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数…...
带3090显卡的Linux服务器上部署SDWebui
背景 一直在研究文生图,之前一直是用原始模型和diffuser跑SD模型,近来看到不少比较博主在用 SDWebui,于是想着在Linux服务器上部署体验一下,谁知道并没有想象的那么顺利,还是踩了不少坑。记录一下过程,也许…...
37、Linux中Xsync数据同步备份工具
37、Linux中Xsync数据同步备份工具 一、介绍二、配置集群hostname三、修改xsync文件四、赋权五、安装Rsync六、验证一七、配置免密登录1、生成rsa密钥2、copy机器自身公钥到目标机器3、.ssh/文件目录赋权 八、验证二 ⚠️ 注:本文全程在普通用户下操作,…...
网络基础:构建你的数字世界之桥
I. 引言 A. 什么是网络? 网络是由各种电子设备通过通信线路或无线电波连接起来,以便彼此之间进行数据交换和资源共享的系统。在当今数字化时代,网络已经成为我们生活和工作中不可或缺的一部分,无论是互联网、局域网还是无线通信…...
Python 全栈系列236 rabbit_agent搭建
说明 通过rabbit_agent, 以接口方式实现对队列的标准操作,将pika包在微服务内,而不必在太多地方重复的去写。至少在服务端发布消息时,不必再去考虑这些问题。 在分布式任务的情况下,客户端本身会启动一个持续监听队列的客户端服…...
管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】
管理自由,体验简单,使用安全 | 详解威联通全套多用户多权限管理方案【附TS-466C产品介绍】 哈喽小伙伴们好,我是Stark-C~。今天我们来解决一个之前评论区多次被提及的问题--多用户权限管理。 对于我们NAS用户来说,基本都会面临这…...
【Redis】优惠券秒杀
全局唯一ID 全局唯一ID生成策略: UUIDRedis自增snowflake算法数据库自增 Redis自增ID策略:每天一个key,方便统计订单量ID构造是 时间戳 计数器 Component public class RedisIdWorker {// 2024的第一时刻private static final long BEGIN…...
【几何】平面方程
文章目录 平面方程一般式截距式点法式法线式 平面方程 平面方程是用一个方程来表示平面,平面上的所有点代入方程,方程都成立。因为用法的不同,平面方程一般有四种表现形式。 一般式 设 n ⃗ ( A , B , C ) \vec n(A,B,C) n (A,B,C) 为平…...
告别沉浸式白屏!UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略
告别沉浸式白屏!UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略当开发者尝试在UniApp中实现沉浸式设计时,往往会遇到一个令人头疼的问题——默认的白色安全区和状态栏导致界面元素(如电池图标、信号强度)几乎不可见。…...
DMA-330地址空间限制与扩展方案解析
1. DMA-330地址空间限制解析DMA-330作为Arm CoreLink系列中的直接内存访问控制器,其物理寻址能力直接由AxADDR信号宽度决定。这个32位地址总线宽度意味着它原生仅支持4GB(2^32字节)的物理地址空间访问。在实际嵌入式系统设计中,这…...
深圳实体门店有必要做GEO AI代运营吗
深圳实体门店有必要做GEO AI代运营吗一、开篇引言2026年深圳本地实体商业竞争进入白热化阶段,全城数百万家线下实体门店涵盖本地生活、家装工装、汽车服务、餐饮娱乐、教育培训等全品类,传统线下地推、门店自然客流、传统团购平台引流效果持续下滑&#…...
AI大模型应用开发全攻略:从入门到精通,掌握LLM、RAG、Agent核心技能!“
本文全面介绍了AI大模型应用开发的核心技术和实践。从大模型API交互基础,到关键参数Messages和Tools的作用,深入解析了RAG、ReAct、Agent等应用范式。文章还探讨了Fine-tuning微调和Prompt提示词工程的重要性,强调工程实践与业务需求相结合。…...
基于Arduino与应变片传感器的高精度厨房电子秤DIY全攻略
1. 项目概述:用Arduino打造一台高精度厨房电子秤作为一个喜欢在厨房里折腾的硬件爱好者,我经常遇到需要精确称量食材的场合。市面上的电子秤要么精度不够,要么价格不菲,要么功能单一。于是,我萌生了自己动手做一台的想…...
智慧无人机巡检-无人机可见光红外数据集 无人机多模态检测数据集 红外与可见光检测数据集
智慧无人机巡检-无人机可见光红外数据集,已完成标注,可导出各种常用数据集,yolo,voc,coco等格式。可见光33000张,红外16100张,目标一张一个 无人机可见光红外目标数据集项目详细信息数据集名称无…...
基于双T振荡器的正弦波LED调光电路设计与实践
1. 项目概述:用双T振荡器实现正弦波LED调光最近在捣鼓一些氛围灯项目,总感觉用单片机PWM做的呼吸灯效果有点“硬”,那种线性的明暗变化看久了难免审美疲劳。于是翻出以前模拟电路的老本行,琢磨着能不能用纯硬件的方式,…...
为Claude Code配置稳定API源并解决访问限制
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置稳定API源并解决访问限制 Claude Code 作为一款强大的 AI 编程辅助工具,其原生服务在某些情况下可能…...
基于GSM与Arduino的远程控制系统:DIY电话控制与短信报警方案
1. 项目概述与核心价值如果你曾经想过,在离家几十公里外,仅凭一部普通的手机,就能远程打开家里的车库门、查看门窗是否关好,甚至在异常情况发生时让系统自动打电话给你报警,那么这个基于GSM的远程控制系统项目…...
PS5 NOR Modifier深度解析:如何通过Windows工具修复PS5硬件故障与实现光驱版转数字版
PS5 NOR Modifier深度解析:如何通过Windows工具修复PS5硬件故障与实现光驱版转数字版 【免费下载链接】PS5NorModifier The PS5 Nor Modifier is an easy to use Windows based application to rewrite your PS5 NOR file. This can be useful if your NOR is corru…...
