ES2023(ES14)新特性有什么?
1. Array.prototype.with
with 方法返回一个新数组,替换指定索引处的元素
const arr = ['a', 'b', 'c', 'd'];
const res = arr.with(2, 'f');
console.log(res);//['a', 'b', 'f', 'd']
console.log(arr);//['a', 'b', 'c', 'd']
Array.prototype.toSorted
2. Array.prototype.toSorted
toSorted 方法返回一个新的已排序数组,不改变原数组。
const numbers = [5, 3, 2, 4, 1];
const sortedNumbers = numbers.toSorted();
console.log(sortedNumbers); // [1, 2, 3, 4, 5]
console.log(numbers); // [5, 3, 2, 4, 1] // 原数组不变
3. Array.prototype.toReversed
toReversed 方法返回一个新的数组,其元素顺序是原数组的反转。 和reverse()类似,但它会改变原数组
const numbers = [5, 3, 2, 4, 1];
const sortedNumbers = numbers.toSorted();
console.log(sortedNumbers); // [1, 2, 3, 4, 5]
console.log(numbers); // [5, 3, 2, 4, 1] // 原数组不变
Array.prototype.toSpliced
const months = ['Jan', 'Mar', 'Apr', 'May'];// 在索引 1 处添加一个元素
const months2 = months.toSpliced(1, 0, 'Feb');
console.log(months2); // ["Jan", "Feb", "Mar", "Apr", "May"]// 从第 2 个索引开始删除两个元素
const months3 = months.toSpliced(2);
console.log(months3); // ["Jan", "Mar"]console.log(months); //['Jan', 'Mar', 'Apr', 'May'];
4. Array.prototype.toSpliced
toSpliced 是一种数组操作方法,它与 splice 类似,但toSpliced不会修改原数组,而是返回一个新数组,包含删除和新增元素后的结果。它在操作数组时更加安全,因为不会改变原始数据。
const months = ['Jan', 'Mar', 'Apr', 'May'];// 在索引 1 处添加一个元素
const months2 = months.toSpliced(1, 0, 'Feb');
console.log(months2); // ["Jan", "Feb", "Mar", "Apr", "May"]// 从第 2 个索引开始删除两个元素
const months3 = months.toSpliced(2);
console.log(months3); // ["Jan", "Mar"]console.log(months); //['Jan', 'Mar', 'Apr', 'May'];
5. Object.hasOwn
Object.hasOwn 是 Object.prototype.hasOwnProperty 的简写,检查属性是否是对象的自身属性,并不是继承来的。
const obj = {a: 1,
};
console.log(obj);
console.log(Object.hasOwn(obj, 'a'));//true
console.log(Object.hasOwn(obj, 'valeOf'));//false
6. findLast() 和 findLastIndex()
findLast(): 由后往前通过索引查找数组中符合条件的第一个元素。
const array1 = [5, 12, 50, 130, 44];const found = array1.findLast((element) => element > 45);console.log(found);// 130
findLastIndex(): 由后往前通过索引查找数组中符合条件的第一个元素所在的索引。
const array1 = [5, 12, 50, 130, 44];const isLargeNumber = (element) => element > 45;console.log(array1.findLastIndex(isLargeNumber));//3
7. Hashbang 语法
Hashbang 注释是一种特殊的注释语法,它会以#!开头,后面仅跟着解释器(interpreter) 的路径,并且只会在脚本或是模组的最开始有效。
以下方代码为例,这段代码是告诉系统,用 Node.js 来执行文件:
#!/usr/bin/env node
console.log('Hello, world!');
8. WeakMap 支持 Symbol 作为 key
Symbols 具有唯一的标识,适合生成唯一的键。
🔍什么是Symbol?在实际开发中怎么用?
const keyA = Symbol('fruit');
const keyB = Symbol('fruit');const map = new WeakMap();
map.set(keyA, 'apple');console.log(map.get(keyA)); // "apple"
console.log(map.get(keyB)); // undefined
相关文章:
ES2023(ES14)新特性有什么?
1. Array.prototype.with with 方法返回一个新数组,替换指定索引处的元素 const arr [a, b, c, d]; const res arr.with(2, f); console.log(res);//[a, b, f, d] console.log(arr);//[a, b, c, d] Array.prototype.toSorted 2. Array.prototype.toSorted toS…...
Linux 中的特殊文件权限:SUID、GUID 和 Sticky
注: 机翻,未校。 Special File Permissions in Linux: SUID, GUID and Sticky Bit You see an s instead of x in the file permissions? Linux has some special file permissions called SUID, GUID and Sticky Bit. Know more about them. 在文件权…...
2024 某公司python 面试真题
Q: Can the type of options or labels of switch-case be floating? 在C语言中,switch-case语句的标签必须是整数类型,不能是浮点型。而在Python中,没有switch-case语句,但是可以使用字典来实现类似的功能,而字典的键…...
jwt伪造身份组组组合拳艰难通关
前言 现在的攻防演练不再像以往那样一个漏洞直捣黄龙,而是需要各种组合拳才能信手沾来,但是有时候使尽浑身解数也不能诚心如意。 前期信息收集 首先是拿到靶标的清单 访问系统的界面,没有什么能利用的功能点 首先进行目录扫描,…...
leetcode日记(64)最小覆盖子串
很复杂的题目,无论是思路还是实践都很难… 思路还是看了答案(?)设定两个指针“框”出一串字符串,初始两个指针都指在s的零位,先移动下指针,直到使框出的字符串中包含t中所有字符串,…...
C语言——编译与链接
目录 引言 翻译环境与运行环境 翻译环境 1.翻译环境的简述 2.编译过程 2.1 预处理(预编译) 2.2 编译 2.2.1 词法分析 2.2.2 语法分析 2.2.3 语义分析 2.3 汇编 3.链接 运行环境 结束语 引言 C语言编译与链接过程是理解程序如何从代码转化…...
你一定想看的LVS详细介绍及常见模式(NAT,DR,防火墙标记)实验详解
目录 一、什么是LVS 二、LVS的核心思想 三、 LVS的优势 四、LVS的调度算法 4.1. LVS的调度算法类型 4.2. LVS静态调度算法 4.3. LVS动态调度算法 4.4.在4.15版本内核以后新增调度算法 五、LVS软件相关信息 六、ipvsadm命令 七、 LVS的NAT模式实验详解 7.1实验环境 7.…...
嵌入式初学-C语言-十七
#接嵌入式初学-C语言-十六# 函数的递归调用 含义: 在一个函数中直接或者间接调用了函数本身,称之为函数的递归调用 // 直接调用a()->a(); // 间接调用a()->b()->a();a()->b()->..->a();递归调用的本质: 本是是一种循环…...
leetcode数论(2280. 表示一个折线图的最少线段数)-几何
前言 经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。 数论包含最大公约数(>2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。 描述 给…...
如何利用 LNMP 搭建 WordPress 站点
作者 乐维社区(forum.lwops.cn) 许远 在这个信息爆炸的时代,拥有一个能够迅速传达信息、展示个性、并能够与世界互动的在线平台,已成为企业和个人的基本需求。WordPress,以其无与伦比的易用性和强大的扩展性࿰…...
“Mutation Observer:让DOM变化尽在掌握
Mutation Observer(变动观察者) 定义 Mutation Observer是一种JavaScript API,用于异步监测DOM树的变动,包括元素的添加、删除、属性变化等。当DOM发生变动时,它可以触发回调函数,允许你对变动作出响应。 …...
oracle(19c)用户管理
简介 本文介绍 Oracle 中的用户管理,包含以下内容: 概念介绍 系统用户 解锁 hr 用户 创建用户 用户相关案例 使用 Profile 管理用户口令 Oracle 的认证方式 重置管理员(sys)密码 1. 概念介绍 使用前可以自行安装oracle数据库 oracle19c安装&a…...
浅谈安科瑞智慧用电系统在电气火灾中的应用
摘要:为了对电气火灾事故进行预测和预警,同时为了对电气火灾事故的应急救援提供 支持,将智慧用电监控系统应用于电气火灾中。该系统利用物联网、移动互联网、云平台、大数据技术,实现对电气线路电流、漏电、温度、谐波等参数进行…...
【Material-UI】Button 组件中的尺寸设置(Sizes)详解
文章目录 一、基础尺寸选项1. 小尺寸(Small)2. 中等尺寸(Medium)3. 大尺寸(Large) 二、尺寸的应用场景三、高级用法和最佳实践1. 使用主题调整默认尺寸2. 确保一致性3. 考虑无障碍设计 四、总结 在用户界面…...
Java学习Day20
Vue学习 nodejs的安装与环境配置 1.直接去官网下载合适版本的nodejs( https://nodejs.org/zh-cn/download/prebuilt-installer) 2.解压下载的安装包,将文件路径配置到系统变量的path中,然后确认后退出。可以使用终端来查看安装的nodejs版本。使用winR…...
代理IP怎么弄,如何在电脑中设置IPXProxy代理IP?
随着互联网的不断普及,人们可以利用网络在不同的领域实现更多的可能性。在这个过程中,许多新型网络技术受到人们的关注,代理IP就是其中之一。使用代理IP可以隐藏真实的IP地址,帮助我们突破网络限制、保护隐私、进行网页抓取等一系…...
MacOS 查看端口命令
netstat 命令 查看所有监听的端口 netstat -nat | grep LISTEN 查看9000端口 netstat -nat | grep 9000 # 示例输出 tcp4 0 0 127.0.0.1.9000 *.* LISTEN lsof 命令 查看所有TCP监听的端口 lsof -n -P -i TCP -s TCP:LISTEN 参…...
【python】序列化与反序列化
序列化与反序列化 JSON、CSV和YAML都是常见的数据序列化和反序列化格式。它们都可以用于将数据从一种表示形式转换为另一种表示形式。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它使用键值对的形式来表示数据ÿ…...
补充:关于GRU的详细运作原理以及特殊的优化思路
1. GRU的基本结构和运作原理 1.1 GRU的基本概念 Gated Recurrent Unit (GRU) 是一种简化版的循环神经网络 (RNN),它通过引入门控机制来解决长期依赖问题,同时减少参数数量以降低计算复杂度。 1.2 GRU的结构详解 GRU 包含两个门控机制:更新门 (update gate) 和重置门 (re…...
xxl-job 源码梳理(2)-服务端
目录 1. 控制面的接口2.手动触发任务2. 定时任务的实现 1. 控制面的接口 服务端包含xxl-job的管理端,页面上的接口后端一系列的controller接口 appName是一个核心概念,它是指执行器应用的名称,appName是执行器的唯一标识 页面上的接口&#…...
window 10 主机安装ubuntu22 系统
准备工作 下载ubuntu22镜像 使用ubuntu_server_220405时,当在/etc/netplan/50-cloud-init.yaml文件里编辑网卡信息 network:version: 2renderer: networkdethernets:eth0:dhcp4: noaddresses: - 172.20.10.2/24routes:- to: defaultvia: 172.20.10.1nameservers:ad…...
如何永久保存网络小说?这款开源工具让你的阅读体验不再受限于平台
如何永久保存网络小说?这款开源工具让你的阅读体验不再受限于平台 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 核心痛点分析:数字阅读时代的内容失控危机 识别阅…...
极速搞定Axure RP全版本中文界面:从痛点分析到完美配置的技术指南
极速搞定Axure RP全版本中文界面:从痛点分析到完美配置的技术指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 作…...
别再手动建模了!用C++和GMSH自动导入STEP文件,5步生成六面体网格(附完整代码)
基于GMSH的CAD/CAE自动化工作流:从STEP文件到六面体网格的工程实践 在工业设计和仿真分析领域,CAD模型到有限元网格的转换一直是制约效率的关键环节。传统的手动建模方式不仅耗时费力,更难以适应参数化设计和批量处理的需求。本文将展示如何利…...
【Matlab】综合能源系统多能流优化调度
【Matlab】综合能源系统多能流优化调度 一、引言 在“双碳”目标与能源结构转型的双重驱动下,综合能源系统(Integrated Energy System, IES)作为整合电力、热力、天然气、冷能等多种能源形式的新型能源载体,凭借“多能互补、协同优化”的核心优势,成为破解能源供需矛盾、…...
全面掌握MelonLoader:Unity游戏Mod加载器的终极指南
全面掌握MelonLoader:Unity游戏Mod加载器的终极指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 你是否曾经为Un…...
别再盲目上协程!Python无锁并发成本决策树(含12个关键阈值参数与AWS/Azure实测TCO对比)
第一章:Python无锁并发的本质与GIL破局前提Python的“无锁并发”并非指完全绕过同步机制,而是指在特定场景下,通过原子操作、不可变数据结构或线程/进程隔离,避免显式使用 threading.Lock 等阻塞原语实现安全协作。其本质依赖于三…...
CoPaw助力前端开发:自动生成React组件代码与UI文案
CoPaw助力前端开发:自动生成React组件代码与UI文案 1. 前端开发的效率痛点 想象一下这个场景:产品经理刚开完需求评审会,设计师交付了最新版原型图,而前端团队需要在三天内完成一个包含20多个React组件的标准化库。更棘手的是&a…...
终极英语写作助手:write-good帮你避免10个常见语法错误
终极英语写作助手:write-good帮你避免10个常见语法错误 【免费下载链接】write-good Naive linter for English prose 项目地址: https://gitcode.com/gh_mirrors/wr/write-good write-good 是一个专为开发者设计的英语写作语法检查工具,能够智能…...
LFM2.5-1.2B-Thinking-GGUF保姆级教程:Windows/Mac/Linux三平台本地部署
LFM2.5-1.2B-Thinking-GGUF保姆级教程:Windows/Mac/Linux三平台本地部署 1. 平台介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型,特别适合在资源有限的设备上快速部署和使用。这个模型采用了GGUF格式,配合llama.c…...
