当前位置: 首页 > news >正文

第十五章 ECMAScript6新增的常用语法

文章目录

  • 一、声明关键字
  • 二、箭头函数
  • 三、解构赋值
  • 四、展开运算符
  • 五、对字符的补充
  • 六、Symbol
  • 七、对象的简写语法
  • 八、Set和Map
  • 九、for-of

一、声明关键字

  1. ES6新增的声明关键字:
    • letconst:声明变量
    • class:声明类
    • importexport:模块化开发
  2. letconst的特点
    1. 不存在提升
    2. 不允许重复声明
    3. 全局不会绑定到window
    4. 块级作用域
    5. 暂时性死区
    6. const声明的变量不允许修改地址
  3. 使用规范:const -> let -> var

二、箭头函数

  1. 箭头函数的特点等同于无名函数
    1. 赋值式创建函数的值
    2. 作为参数,回调函数
    3. 作为返回值,闭包函数
    4. 作为事件处理函数,不推荐
    5. 作为匿名函数的函数体使用
  2. 语法:
    • 完整语法:()=>{}
    • 极简语法:=>
      • 当有且只有一个参数时,可以省略小括号
      • 当有且直接返回了数据时,可以省略花括号和return,花括号和return必须同时省略
  3. 特点:
    1. 可读性差
    2. 语法极简
    3. 没有自身的this,自动使用外层this
    4. 不能被new执行

三、解构赋值

  1. 解开结构赋值,一般用于处理对象或数组
  2. 对象的解构
    • 规则:按照键和值的关系,一一对应,进行解构
    • 不存在的键,为undefined
    • 可以在声明变量时直接使用=号设置默认值
      • let {name,age=18,sex} = obj;
  3. 数组的解构
    • 规则:按照索引从左向右,一一对应,进行解构
    • 不存在的索引,为undefined
    • 可以在声明变量时直接使用=号设置默认值
      • let [q, w, e=0] = arr
  4. 字符的解构
    • 字符是一种类数组的结构,等同于数组的结构规则
      • let [a, s, d] = str;

四、展开运算符

  1. 一般用于快速展开复杂的数据,获取其内部的值
  2. 语法:...要展开的数据
  3. 展开对象:只能在能接收键值对的位置展开对象
    • 花括号内
const obj1 = {name:"Admin"};
// 花括号内
const obj2 = {...obj1};
  1. 展开数组:只能在能接收多个数据的位置展开数组
const arr = [3, 4, 5];
// 中括号内
const arr2 = [...arr];
// 参数
const max = Math.max(...arr);
// 伪数组转真数组
const arr3 = [...aLi];

五、对字符的补充

  1. 字符串模板:```
    • 支持反引号内回车换行
    • 反引号内的变量使用${}进行标记
const msg = "小王";
const str = `今天${msg}真好`;
const str2 = `${msg}今
天
送
我
一
件
礼
物`;
  1. 方法
    • str.repeat()
    • str.startsWith()
    • str.endsWith()
    • str.includes()
    • str.codePointAt()
    • String.fromCodePoint()

六、Symbol

  1. 类似于字符,基本数据类型,任何两个Symbol都不相等,用于表示标记值或状态
  2. 用于消除使用字符或数值或布尔等常规数据作为状态时的隐患
  3. 语法:const s = Symbol()

七、对象的简写语法

let name = "张三";
// 当对象的键和存储了值的变量名重名时,可以简写成一个单词
const obj = {name
}
console.log(obj);	// {name:"张三"}const obj = {// 方法可以省略冒号和functionshow(){console.log(this)}
}
obj.show(); // { show:f }

八、Set和Map

  1. 数据的打包形式
    • 数组对象:有序的可重复的值集合
    • 对象:无序的无重复的键值对集合
    • Set对象:无序的无重复的值集合
    • Map对象::无序的无重复的值值对集合
  2. Set:
    • 创建:const s = new Set()
    • 属性:s.size
    • 方法:
      • 添加数据:s.add( val )
      • 删除数据:s.delete( val )
      • 查询是否存在数据:s.has( val )
      • 清空数据:s.clear()
      • 获取所有键名:s.keys()
      • 获取所有值:s.values()
      • 获取所有键值:s.entries()
      • 遍历所有数据:s.forEach( callback )
  3. Map:
    • 创建:const m = new Map()
    • 属性:m.size
    • 方法:
      • 添加数据:m.set( key, val )
      • 查询数据:m.get( key )
      • 删除数据:m.delete( key )
      • 查询是否存在数据:m.has( key )
      • 清空数据:m.clear()
      • 获取所有键名:m.keys()
      • 获取所有值:m.values()
      • 获取所有键值:m.entries()
      • 遍历所有数据:m.forEach( callback )

九、for-of

  1. ES6新增的遍历语句:主要用于遍历set和map
  2. for-of遍历的是值
    • 能否遍历数组
    • 能否遍历对象
    • 能否遍历字符
  3. for-in遍历的是键
    • 能否遍历set
    • 能否遍历map
  • for-of 可以遍历:Set 和 Map 结构、数组、某些类似数组的对象(比如arguments对象、DOM NodeList 对象),以及字符串。

相关文章:

第十五章 ECMAScript6新增的常用语法

文章目录 一、声明关键字二、箭头函数三、解构赋值四、展开运算符五、对字符的补充六、Symbol七、对象的简写语法八、Set和Map九、for-of 一、声明关键字 ES6新增的声明关键字: let,const:声明变量class:声明类import&#xff0c…...

vulhub中的Apache SSI 远程命令执行漏洞

Apache SSI 远程命令执行漏洞 1.cd到ssi-rce cd /opt/vulhub/httpd/ssi-rce/ 2.执行docker-compose up -d docker-compose up -d 3.查看靶场是否开启成功 dooker ps 拉取成功了 4.访问url 这里已经执行成功了,注意这里需要加入/upload.php 5.写入一句话木马 &…...

MSB20M-ASEMI迷你贴片整流桥MSB20M

编辑:ll MSB20M-ASEMI迷你贴片整流桥MSB20M 型号:MSB20M 品牌:ASEMI 封装:UMSB-4 特性:贴片、整流桥 最大平均正向电流:2A 最大重复峰值反向电压:1000V 恢复时间:&#xff1…...

工程管理系统功能设计与实践:实现高效、透明的工程管理

在现代化的工程项目管理中,一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统,结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…...

【C#】网址不进行UrlEncode编码会存在一些问题

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是2024年第3篇文章,此篇文章是C#知识点实践序列文章,博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言数据丢失效果请求端代码接口端代码…...

深入Pandas(二):高级数据处理技巧

文章目录 系列文章目录引言时间序列分析可视化示例 高级数据分析技术分组与聚合操作时间序列分析 高级数据操作数据合并与重塑示例:数据合并merge示例:数据合并concat示例:数据重塑 - 透视表 高级索引技巧 结论 系列文章目录 Python数据分析…...

实验8 分析HTTP协议和DNS

实验8 分析HTTP协议和DNS 一、 实验目的及任务 熟悉并掌握wireshark的基本操作,了解网络协议实体间的交互以及报文交换。分析HTTP协议分析DNS协议 二、 实验设备 与因特网连接的计算机网络系统;主机操作系统为Windows;wireshark等软件。 …...

Talk | EMNLP 2023 最佳长论文:以标签为锚-从信息流动的视角分析上下文学习

本期为TechBeat人工智能社区第561期线上Talk。 北京时间1月4日(周四)20:00,北京大学博士生—王乐安的Talk已准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “以标签为锚-从信息流动的视角分析上下文学习”,介绍了他的团队在上下文学…...

2024年中国电子学会青少年编程等级考试安排的通知

各有关单位、全体考生: 中国电子学会青少年等级考试(以下简称等级考试)是中国电子学会为落实《全民科学素质行动规划纲要》,提升青少年电子信息科学素质水平而开展的社会化评价项目。等级考试自2011年启动以来,作为中国电子学会科…...

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-2(2) 质量刚体的在坐标系下运动

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…...

【亚马逊云科技】自家的AI助手 - Amazon Q

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…...

网络安全—SSL安全访问应用

文章目录 网络拓扑部署CA服务器颁发证书开启Web服务安装IIS服务修改Web默认网页 申请Web证书前提准备申请文件生成申请web证书开始安装web证书 客户机访问web默认网站使用HTTP使用HTTPS 为客户机安装浏览器证书 环境:Windows Server 2003 网络拓扑 这里使用NAT还是…...

Qt5.14.2实现将html文件转换为pdf文件

文章目录 简介源码widget.cppwidget.uihtml文件演示效果简介 QPdfWriter是Qt框架中用于创建和写入PDF文件的类。它允许您在您的Qt应用程序中动态生成并输出PDF文档,以便进行打印、保存或导出。 QPdfWriter类提供了以下一些常用的函数和方法,可以让您创建和定制PDF文件: 构…...

Minecraft教程:使用MCSM面板搭建我的世界私服并实现远程联机

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 前言 Li…...

springboot学生成绩管理系统源码和论文

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…...

w20webshell之文件上传

1.什么是文件上传? 将本地文件传输到指定位置。2.什么是webshell 给恶意脚本提供运行环境3.文件上传所需要的条件 a.文件成功上传,未被删除 b.知道文件路径 c.文件所在系统支持脚本运行4.文件上传流程 支持任意文件上传的文件上传 a.恶意文件上传成功 b.…...

【Redis】非关系型数据库之Redis的主从复制、哨兵和集群高可用

目录 一、主从复制、哨兵、集群的区别 二、主从复制 2.1主从复制的作用 2.2主从复制的原理 2.3主从复制的实操 步骤一:环境准备 步骤二:安装Redis以及配置文件修改 Redis的主从配置文件都一样 步骤四:验证主从复制 三、哨兵 3.1哨兵…...

从私有Git仓库的搭建到命令的使用及部署再到分支管理

一、版本控制系统/版本控制器 1. 版本控制系统: git 分布式 —没有中心代码库,所有机器之间的地位同等(每台机器上都有相同的代码) svn 集中管理的 —有中心代码库,其他都是客户端 2.git与svn介绍 1.git属于分布…...

mysql基础-常用函数汇总

目录 1. 查询技巧 2. 时间函数 2.1 now() 2.2 current_date() 2.3 时间差timestampdiff()与datediff() 2.4 其他时间函数 3. 字符函数 3.1 截取函数 3.2 分割函数 3.3 left与right函数 3.4 其他函数 4. 数字函数 5. …...

COCO数据格式的json文件内容

COCO(Common Objects in Context)数据集现在有3种标注类型:object instances(目标实例), object keypoints(目标上的关键点), 和image captions(看图说话),使用JSON文件存储,包含了对图像中目标的边界框、类别标签、分割掩码等信息。 COCO标注文件是一个包含多个字…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

【生成模型】视频生成论文调研

工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...