ES6新增特性

ES6又称ECMAScript6、ECMAScript2015

新特性:

1. 块级作用域:let const ,不会有变量提示、块级作用域的内容、不能在同一个作用域重复声明

2. Promise:解决了回调地狱

3. 箭头函数:

4. 定义类语法糖:Class

5.解构赋值

解构赋值是一种表达式,它允许我们将数组或对象的值解压到不同的变量中。在ES6中,我们可以使用这种特性来简化我们的代码,并使其更具可读性。

以下是一些使用ES6解构赋值的示例:

数组解构:

let [a, b, c] = [1, 2, 3];

console.log(a); // 1

console.log(b); // 2

console.log(c); // 3

对象解构:

let {x, y} = {x: 1, y: 2};

console.log(x); // 1

console.log(y); // 2

嵌套对象解构:

let {loc: {x, y}} = {loc: {x: 1, y: 2}};

console.log(x); // 1

console.log(y); // 2

默认值:

let [a, b = 2] = [1];

console.log(a); // 1

console.log(b); // 2

函数参数解构:

function add([a, b]){

return a + b;

}

console.log(add([1, 2])); // 3

交换变量的值:

let a = 1;

let b = 2;

[a, b] = [b, a];

console.log(a); // 2

console.log(b); // 1

6.扩展运算符

7. 增加基本数据类型:Symbol,表示独一无二的值

8. 新增了函数参数的默认值

9. 数组新增API

a. Array.from(): 用于将类数组对象或可迭代对象转换为数组。

const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};

const arr = Array.from(arrayLike); // ['a', 'b', 'c']

b. find(): 返回数组中满足提供的测试函数的第一个元素的值。若没有找到返回undefined

const numbers = [1, 2, 3, 4, 5];

const found = numbers.find(num => num > 3); // 4

c. findIndex(): 返回数组中满足提供的测试函数的第一个元素的索引。若没有找到返回-1

const numbers = [1, 2, 3, 4, 5];

const index = numbers.findIndex(num => num > 3); // 3

d. fill(): 用一个固定值填充整个数组或数组的一部分。

const arr = new Array(5).fill(1); // [1, 1, 1, 1, 1]

e. entries()keys(),和values(): 分别返回迭代器,可以用于遍历数组的索引、键和值。for (const [index, value] of arr.entries()) {

console.log(index, value);

}

f.includes(): 判断数组是否包含指定的元素,返回布尔值。

const numbers = [1, 2, 3];

const includes = numbers.includes(2); // true

g. flat() 和 flatMap(): 用于扁平化数组。flat()可以将数组扁平化,flatMap()在扁平化的同时还可以执行映射操作。

const arr = [1, [2, [3]]];

const flatArr = arr.flat(); // [1, 2, [3]]

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

h. filter(): 创建一个新数组,包含通过测试的所有元素。

const numbers = [1, 2, 3, 4, 5];

const filtered = numbers.filter(num => num > 3); // [4, 5]

i. map(): 创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

const numbers = [1, 2, 3];

const mapped = numbers.map(num => num * 2); // [2, 4, 6]

j. reduce() 和 reduceRight(): 对数组中的所有元素执行一个由您提供的reducer函数(升序和降序执行),将其减少为单一输出值。

const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((acc, val) => acc + val, 0); // 15

k. some() 和 every(): 测试数组中的某些元素是否满足某条件。some()是只要有一个满足就返回trueevery()必须所有都满足才返回true

const numbers = [1, 2, 3, 4, 5];

const someGreaterThan2 = numbers.some(num => num > 2); // true

const everyGreaterThan0 = numbers.every(num => num > 0);

10.模块化(export、import)

11. 新增数据结构:set、map

12. generator

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

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

相关文章

EDM邮件营销,如何确保高频率发送不触发限制

EDM邮件营销需选对平台,遵守反垃圾邮件法规,高效管理邮件列表,合理制定发送频率,优化内容与设计,用智能化工具测试与优化,监控送达和反馈,维持良好ISP关系,确保高效安全发送不封号。…

MATLAB中head函数用法

目录 语法 说明 示例 显示矩阵的前八行 显示表的前三行 返回表的前八行 head函数的功能是获取数组或表的顶行。 语法 head(A) head(A,k) B head(___) 说明 head(A) 在命令行窗口中显示数组、表或时间表 A 的前八行,但不存储值。 head(A,k) 显示 A 的前 k …

13.3寸三防平板大尺寸+高速运行提升工业软件操作体验

在工业领域,移动设备的应用日益广泛,其性能直接影响着工作效率和数据安全。传统的工业平板电脑常常面临着屏幕尺寸过小、运行速度缓慢、以及抗环境能力不足等问题,这些都制约了工业软件的流畅运行和高效应用。而一款搭载先进硬件配置的13.3寸…

线性代数基础02_矩阵(下)向量

目录 一、矩阵(下) 1、伴随矩阵 2、逆矩阵 3、初等变换 4、矩阵的标准形 4.1行阶梯形矩阵 4.2简化行阶梯型矩阵 二、向量 1、定义 2、向量的运算 3、矩阵的特征值和特征向量 4、向量的模 5、向量的内积 一、矩阵(下)…

动态规划-子数组系列——乘积最大子数组

1.题目解析 题目来源:152.乘积最大子数组——力扣 测试用例 2.算法原理 1.状态表示 由于题目给的数组中可以包含负数,因此求最大乘积有两种情况: a.负数乘以最小数得出最大乘积 b.整数乘以最大数得出最大乘积 所以需要两个表分别求出最大最…

Ajax(web笔记)

文章目录 1.Ajax的概念2.Ajax 的作用3.原生Ajax4.Axios4.1Axios的概念4.2Axios入门 1.Ajax的概念 AsynchronousJavaScriptAndXML,异步的JavaScript和XML 2.Ajax 的作用 数据交换:过Ajax可以给服务器发送请求,并获取服务器响应的数据。异步交互:可以在…

R语言医学数据分析实践-R编程环境的搭建

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 R语言对编程环境的要求不高,可以在多种操作系统平台上…

找寻孤独伤感视频素材的热门资源网站推荐

在抖音上,伤感视频总是能够引起观众的共鸣,很多朋友都在寻找可以下载伤感视频素材的地方。作为一名资深的视频剪辑师,今天我来分享几个提供高清无水印伤感素材的网站,如果你也在苦苦寻找这些素材,不妨看看以下推荐&…

【软件运行类文档】项目试运行方案,试运行计划书(word原件)

一、 试运行目的 (一) 系统功能、性能与稳定性考核 (二) 系统在各种环境和工况条件下的工作稳定性和可靠性 (三) 检验系统实际应用效果和应用功能的完善 (四) 健全系统运行管理体制&…

RabbitMQ进阶_延迟消息

文章目录 一、 死信交换机和延迟消息1.1、 死信交换机1.2、 延迟消息 二、 DelayExchange插件三、 实现时的优化 在电商的支付业务中,对于一些库存有限的商品,为了更好的用户体验,通常都会在用户下单时立刻扣减商品库存。例如电影院购票、高铁…

解决calico 报错: error getting IP from IPAM: resource already exists

问题描述&#xff1a; Pod启动&#xff0c;一直creating状态&#xff0c;describe显示 error getting IP from IPAM: resource already exists&#xff0c;分配的IP地址被占用。 解决办法 这个IP真的被占用了&#xff0c;可以用 kubectl get po -A -owide | grep <ip>…

How to install Node.js and NPM on CentOS

How to install Node.js and NPM on CentOS Download Node.js 菜鸟教程-Node.js 安装配置 Introduction Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and…

PHP 正则验证A-Z且排除某字母

都已经找到这里来了&#xff0c;相信已经尝试很多办法了&#xff0c;那么我们直接上答案 关键正则&#xff1a;(?!.*[IO]) //验证5到6个大写字母且排除I和O if (preg_match(/^(?!.*[IO])[A-Z\d]{5,6}$/u, AAAAM)) {echo "匹配成功"; } else {echo "匹配失败…

今日指数项目集成SpringSecurity

项目集成SpringSecurity ​ 在第一章我们是基于SpringSecurity、JWT技术实现前后端无状态化认证授权&#xff0c;而我们当前的项目是前后端分离的架构&#xff0c;同样也可借助Security框架和Jwt实现前后端的无状态认证授权操作&#xff1b; 1、项目自定义认证过滤器 1.1 依…

特斯拉Robotaxi发布会2024:自动驾驶未来的开端

引言 2024年10月&#xff0c;特斯拉在洛杉矶举行了一场引发全球科技界高度关注的发布会&#xff0c;主题为“We Robot”。这场发布会展示了特斯拉的最新自动驾驶技术&#xff0c;包括无人驾驶出租车Cybercab和无人驾驶厢式货车Robovan&#xff0c;并且还展示了人形机器人Optim…

D43【python 接口自动化学习】- python基础之函数

day43 装饰器&#xff08;上&#xff09; 学习日期&#xff1a;20241020 学习目标&#xff1a;函数&#xfe63;- 56 装饰器&#xff1a;函数嵌套的定义与调用的区别 学习笔记&#xff1a; 变量作用域 变量读取顺序&#xff1a;local-》enclosed-》global-》builtin # 变量…

owasp top 10漏洞原理与防御技术(原理和对应防御技术)

OWASP&#xff08;Open Web Application Security Project&#xff09;每年发布的Top 10 Web应用程序安全风险&#xff0c;是对开发人员、项目经理和组织的一个重要指南。这些风险代表了最常见且具有严重影响的安全漏洞。 1. 注入 原理 注入漏洞是指当攻击者将恶意代码插入应…

Unity-Shader-Tags

shader中可以通过tag指定渲染方式&#xff0c;光照方式等&#xff0c;是与系统对话的窗口 一、Queue&#xff1a; 用于定义渲染的顺序&#xff0c;根据值的大小确定层级的渲染顺序&#xff0c;用户也可以自定义值的大小。 1、Background&#xff1a;1000 2、Geometry&#…

c语言经典100例

1.字符串转为数字 #include <stdio.h>int strToInt(char *s) {int num0;int sign1;int step1;if (*s -){sign -1;s;}while (*s > 0&&*s < 9){num num*10(*s-0);step 10;s;}return num*sign; }int main() {char a[10] "-1234";char *s a ;pr…

法律文书审查专项使用大模型实现

审查合同,起诉书,劳动合同,等等一系列文书都可以采用大模型实现。 愿我们终有重逢之时,而你还记得我们曾经讨论的话题。 QQ group 868373192 QQ second group 277356808 我们可以通过设计更详细的prompt工程来对合同中的每一句进行分析,并判断其是否符合法律法规。对于…