ES6 笔记02

news2025/1/12 0:00:39

目录

01 对象的扩展

02 链判断运算符

03 属性名表达式

04 Symbol 类型

05 set集合的使用

06 Map集合的使用

07 Set集合和Map集合的遍历方式

08 iterator迭代器


 

01 对象的扩展

        对象的属性和方法的简洁表示:

                es6允许在字面量对象里面直接写变量名

                let 变量名=变量值;

                let 对象 = { 变量名 }

                变量名是属性名  变量值是属性值

                相当于:

                        let 变量名=变量值

                        let 对象={属性名:变量名}

        函数的简洁表示:

                之前的写法:

                        对象={

                                函数名:function(){}

                        }

                es6新写法:

                        对象={

                                函数名(){ }  //这样的写法是函数的简写 不是箭头函数

                        }

        字面量对象的存值器和取值器: (了解)

                

02 链判断运算符

        链判断运算符:

                格式 : 对象?.属性名1?.属性名2?.属性名n

                这种写法是用来判断 属性是否存在 如果不存在 则整个表达式返回undefined不至于报错

                链判断运算符不能用于赋值操作

        null判断运算符:

                let str =show() ?? "默认值"

                只有show()方法的返回值为null或者undefined 时才取默认值

03 属性名表达式

        在字面量里面 [ 属性名 ]    可以把属性名写成表达式的形式

04 Symbol 类型

        symbol 类型是一种独一无二的类型 所有的symobol的值都是独一无二的

        通过symbol函数调用  可以返回一个独一无二的值

        symbol函数可以传入一个字符串 用来表示当前symbol

                即使symbol函数中传入的字符串一样   symbol类型的值也是不同的

        es6中增加了一种数据类型 symbol类型 可以作为属性名

        Symbol类型的属性调用Objec.keys系列方法是拿不到的

05 set集合的使用

        js数组的弊端:

                不能查重        键是索引值 无法很好的描述当前的值

        Set集合:

                格式:   const s =new Set()

                特点:        元素不允许重复 放入的元素自动查重

                                没有索引值功能

               方法:

                        增加元素: 集合名.add( )

                        根据元素内容删除元素: 集合名.delete('要删除的元素')

                        清空集合: 集合名.clear( )

                        判断是否拥有指定的元素:  集合名.has('要判断的元素')

                        集合的长度: 集合名.size

        set构造函数里面允许传入一个数组 构建一个set集合

        set集合可以给数组去重 也可以给字符串去重

        向set集合里面加入值的时候 不会发生类型转换 

        set集合判断两个元素是否相等 使用的规则类似于全等(===)

06 Map集合的使用

        js中的对象  是键值对的结构 

                对象的属性名只能是字符串或者symbol 

        Map集合是键值对结构  根据键存储值 根据键取值

                Map的键可以是任意类型  也可以是对象类型的

       Map集合的方法:

                增加元素:集合.set('键','值')

                 删除元素:集合.delete(键)

                修改元素:集合.set('键','新值')

                根据键获取值:集合.get(键')

                判断是否有指定的键:集合.has('键')

                清空集合:集合.clear()

                集合的长度: 集合.size

        Map构造函数中可以传入一个二维数组 构建一个map集合

07 Set集合和Map集合的遍历方式

        set集合的遍历:

                Set.prototype.keys(): 返回键名的遍历器

                Set.prototype.values(): 返回键值的遍历器

                Set.prototype.entries():返回键值对的遍历器

                Set.prototype.forEach():使用回调函数遍历每个成员

        Map集合的遍历:

            Map.prototype.keys():返回键名的遍历器。

            Map.prototype.values():返回键值的遍历器。

            Map.prototype.entries():返回所有成员的遍历器。

            Map.prototype.forEach():遍历 Map 的所有成员。

08 iterator迭代器

        for in循环 是for循环的简化写法

                主要是针对带有索引值的数据结构进行遍历 例如: 数组 对象

        set集合和map集合 无法使用for in循环遍历

        所以es6推出了一种迭代器遍历方法

                可以遍历很多不同结构的数据类型

        具有默认的迭代器功能的数据结构  Array Map Set String 函数里面的argument

        使用方式:

                let  迭代器对象=数据结构[symbol.iterator]() 

                通过哪个数据结构获取的迭代器对象 就是遍历哪个数据结构

                迭代器对象有一个方法:

                        next( ) 返回下一个元素对象相关的数据

                        有两个属性: value  下一个元素的值  done 表示是否还有元素

                        当value为undefined done为true的时候 表示遍历到没有元素可以遍历的情况了

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

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

相关文章

Hexo博客重新部署与Git配置

由于电脑重装了一次,发现之前Hexo与NexT主题版本过于落后,重新部署了下。 1 Node.js与git安装 这一块安装就不赘述了。去两个官网找安装文件安装即可。 node.js git 打开git以后配置的几个关键命令行。 git config --global user.name "你的gi…

langchain 自定义模型使用

目录 背景 参考 实现 调用 背景 在公司有大模型可以通过 api 方式调用,想使用 langchain 框架调用,langchina 已经封装好大部分模型了,但自己公司的模型不支持,想使用,相当于自定义模型 参考 Custom Chat Model …

基于Springboot的家教管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的家教管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

Idea插件Easy-Code模板文件

目录 需要引入的依赖application.yml.vmapplication-dev.yml.vmresult.java.vm (统一返回集)resultCodeEnum.java.vm (统一返回集需要的枚举类)globalCorsConfig.java.vm (全局跨域处理)entity.java.vm (实体类&#x…

【科研绘图 基础版】01 使用Python绘制时间序列折线图

下面这段代码绘制了一个折线图,其中包含了实际平均温度数据和使用线性回归模型预测的平均温度数据(用来近似地表示数据的整体趋势)。 具体来说,图中的横轴表示年份,纵轴表示平均温度。蓝色的实心线代表了实际的平均温度…

【Mac】Perfectly Clear Workbench(智能图像清晰修复软件)安装教程

软件介绍 Perfectly Clear Workbench是由Athentech Imaging开发的一款图像处理软件,旨在帮助用户快速、轻松地优化和改善数字照片的质量。以下是Perfectly Clear Workbench的一些主要特点和功能: 1.自动图像优化 该软件采用先进的图像处理算法&#xf…

StarRocks 【新一代MPP数据库】

1、StarRocks 1.1、StarRocks 简介 StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing,MPP数据库是一种基于大规模并行处理技术的数据库系统,旨在高效处理大量数据。) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏…

设计模式:迭代器模式(Iterator)

设计模式:迭代器模式(Iterator) 设计模式:迭代器模式(Iterator)模式动机模式定义模式结构时序图模式实现在单线程环境下的测试在多线程环境下的测试模式分析优缺点适用场景应用场景参考 设计模式&#xff1…

第五百回 Get路由管理

文章目录 1. 概念介绍2. 使用方法2.1 普通路由2.2 命名路由 3. 示例代码4. 内容总结 我们在上一章回中介绍了"使用get显示Dialog"相关的内容,本章回中将介绍使用get进行路由管理.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

什么是分库分表

读写分离主要应对的是数据库读并发,没有解决数据库存储问题。试想一下:如果 MySQL 一张表的数据量过大怎么办? 答案当然是分库分表 什么是分库? 分库 就是将数据库中的数据分散到不同的数据库上,可以垂直分库,也可…

一二三应用开发平台使用手册——系统管理-系统参数系统日志-使用说明

系统参数 概述 通过配置化,可以提升系统灵活性和运维便利性。 配置化往往分为两大类,一类是偏技术层面的,如平台的发送邮件提醒的邮箱,相对固化,不会频繁调整,一般放在系统的配置文件里,如spr…

目标检测——印度车辆数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

MySQL前缀索引、脏页和干净页、COUNT(*)讨论、表删除内存问题

文章目录 如何加索引如何给身份证号添加索引 SQL语句变慢脏页 (Dirty Pages)干净页 (Clean Pages)为何区分脏页和干净页处理脏页管理策略 flush如何控制 为什么删除表数据后表文件大小不变问题背景核心原因数据存储方式参数影响 解决方案1. 调整innodb_file_per_table设置2. 使…

2.4 输入和显示

本节必须掌握的知识点: 示例五源代码 代码分析 汇编解析 2.4.1 示例五 ■格式化输入函数scanf scanf函数可以从键盘读取输入的信息。scanf函数同样可以像printf函数那样,通过转换说明“%d”来限制函数只能读取十进制数。scanf函数的参数为可变参数…

雷军-2022.8小米创业思考-6-互联网七字诀之快:天下武功,唯快不破;快不是目的,快是手段;不要用战术上的勤奋掩盖战略上的懒惰。

第六章 互联网七字诀 专注、极致、口碑、快,这就是我总结的互联网七字诀,也是我对互联网思维的高度概括。 快 我们期待非常多的快,比如研发进展快、库存周转快、资金回笼快等等。但在这里,我们集中讨论的是公司在业务发展和面对…

【5分钟学会一个知识点】01.Elasticsearch基本操作-增删改查

目录 【5分钟学会一个知识点-探索现代搜索与分析引擎的魅力】01.Elasticsearch基本操作-增删改查1.基本操作1.1索引操作1.2文档操作1.3查询1.4修改数据1.5查询1.5.1条件查询1.5.1.1遍历所有的索引1.5.1.2查询某个索引1.5.1.3条件查询1:使用GET url传参数1.5.1.4条件…

18、案例实战:上亿请求轻松应对,看年轻代垃圾回收如何助力电商性能飞跃!

18.1、背景引入 我们通常会通过案例分析,来指导大家如何在不同的场景下,预测系统的内存使用模型。我们需要合理地调整新生代、老年代、Eden和Survivor各个区域的内存大小,然后尽可能地优化参数,以减少新生代对象进入老年代的情况…

An 2024下载

An2024下载: 百度网盘下载https://pan.baidu.com/s/1cQQCFL16OUY1G6uQWgDbSg?pwdSIMS Adobe Animate 2024,作为Flash技术的进化顶点,是Adobe匠心打造的动画与交互内容创作的旗舰软件。这款工具赋予设计师与开发者前所未有的创意自由&#x…

火绒安全原理、用法、案例和注意事项

火绒安全是一款功能强大的安全软件,它采用了先进的安全技术和算法,通过实时监测、恶意代码识别、防火墙功能、沙箱技术和网络保护等多种手段,为用户提供全面的计算机安全防护。 1.为什么选用火绒安全? 火绒安全是一款优秀的安全软…

用lobehub打造一个永久免费的AI个人助理

Lobe Chat是一个开源的高性能聊天机器人框架,它被设计来帮助用户轻松创建和部署自己的聊天机器人。这个框架支持多种智能功能,比如语音合成(就是让机器人能说话),还能理解和处理多种类型的信息,不仅限于文字…