ES6 笔记02

目录

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.mzph.cn/pingmian/11254.shtml

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

相关文章

金融业开源软件应用 评估规范

金融业开源软件应用 评估规范 1 范围 本文件规定了金融机构在应用开源软件时的评估要求,对开源软件的引入、维护和退出提出了实现 要求、评估方法和判定准则。 本文件适用于金融机构对应用的开源软件进行评估。 2 规范性引用文件 下列文件中的内容通过文中的规范…

WS2811 单线 256 级灰度三通道恒流 LED 驱动器芯片 IC

产品概述 WS2811 是三通道LED驱动控制专用电路,芯片内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和15V高压可编程定电流输出驱动器。同时,为了降低电源纹波,3个通道有一定的延时导通功…

【数据结构课程学习】:队列学习

🎁个人主页:我们的五年 🔍系列专栏:数据结构课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🚗 1.队列的基本概念&#xff1a…

如何利用代理IP高效采集全球热点,赋能短视频创作?

如何利用代理IP高效采集全球热点,赋能短视频创作? 一、摘要二、代理IP1. 什么是代理IP?2. 代理IP的分类3. 代理的重要性 三、如何选择可靠的代理IP服务商?四、IPIDEA代理IP简介1.IPIDEA简介2.IPIDEA的优势 五、获取代理IP1. 注册平…

python随机显示四级词汇

python实现一个浮动窗口随机显示四级单词在桌面跑来跑去 实现一个浮动窗体随机显示四级单词在windows桌面置顶移动 tkinter库来创建窗口和显示单词,以及random库来随机选择单词。 使用after方法来定时更新窗口的位置,实现单词窗口的慢慢移动效果 使用…

有机硅改性氟树脂性能进一步提升 市场需求增长空间大

有机硅改性氟树脂性能进一步提升 市场需求增长空间大 有机硅改性氟树脂,利用有机硅树脂对氟树脂进行改性得到一种新型的、性能更为优异的树脂材料。 有机硅树脂,具有柔韧性好、电绝缘、憎水、耐候、耐老化等优点,但固化温度高且时间长、附着力…

使用Apache Spark从MySQL到Kafka再到HDFS的数据转移

使用Apache Spark从MySQL到Kafka再到HDFS的数据转移 在本文中,将介绍如何构建一个实时数据pipeline,从MySQL数据库读取数据,通过Kafka传输数据,最终将数据存储到HDFS中。我们将使用Apache Spark的结构化流处理和流处理功能&#…

Leetcode-有效的括号

20. 有效的括号 - 力扣(LeetCode)https://leetcode.cn/problems/valid-parentheses/ 题目 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足&…

c++ map,set封装

map 是一个 kv 结构, set 是 k结构。 我们前面模拟实现了 红黑树,但是我们实现的红黑树把 kv 结构写死了,怎么样才能用泛型编程的思想来实现map和set呢 我们先简单看一下原码中是怎么实现的 1.原码实现逻辑 我们打开这里的 stl_set.h 通过…

Dubbo基本使用

Dubbo基本使用 1.项目介绍2.开发步骤2.1 启动注册中心2.2 初始化项目2.3 添加 Maven 依赖2.3.1 父pom.xml2.3.1 consumer模块和provider模块pom.xml 2.4 定义服务接口2.5 定义服务端的实现2.6 配置服务端 Yaml 配置文件2.7 配置消费端 Yaml 配置文件2.8 基于 Spring 配置服务端…

芯片原厂工程师带你学 Linux 驱动

芯片原厂工程师,手把手带你学Linux驱动,感兴趣的点个关注私聊呀。 介绍: https://b2qtatgfkp.feishu.cn/docx/HoBKdezVFo6HlVx0hXPc8R7QnWc

JINGWHALE 数字认证体系 · 进阶知识库

JINGWHALE 数字认证体系 是 JINGWHALE 数字科学艺术创新中心 的数字认证服务。 ◢◤ 宗旨 致力于数字化知行合一的知识赋能! ◥ 数字化人才培养 培养数字化思维,传播数字化知识,赋能各行业数字化。 ◥ 职业人才发展 无缝衔接学校高等…

LeetCode题目104: 二叉树的最大深度(递归\迭代\层序遍历\尾递归优化\分治法实现 )

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

EPICS database练习

给定一个以下的数据库: # 指定Limit的上限,初始为10,可以通过通道访问进行设置,上限为100 record(ao, "$(P)Limit") { field(DRVH, "100") field(DOL, "10") field(PINI, "YES") }# 一个…

el-menu 保持展开点击不收缩 默认选择第一个菜单

<el-menu:default-openeds"[/system]" 数组 默认展开第一个:collapse"isCollapse"close"handleClose" 点击关闭的时候 让菜单打开 就可以实现保持展开效果ref"menus":unique-opened"true":active-text-color"se…

2024中国(重庆)人工智能展览会8月举办

2024中国(重庆)人工智能展览会8月举办 邀请函 主办单位&#xff1a; 中国航空学会 重庆市南岸区人民政府 招商执行单位&#xff1a; 重庆港华展览有限公司 【报名I59交易会 2351交易会 9466】 展会背景&#xff1a; 2024中国航空科普大会暨第八届全国青少年无人机大赛在…

QT 项目打包(为了后期远程实验用)

一、环境准备 1、一个项目工程 二、步骤 1、将编译器设置调整为Release模式 二、对项目重新编译构建 三、可以看到工程目录这个文件夹 打开工程目录文件夹的Release文件夹&#xff0c;我的路径如下 四、新建一个文件夹&#xff0c;将上述路径文件夹下的exe文件复制到新的文…

Windows的消息过程调用与窗口位于同一个线程

消息过程函数和窗口通常在同一个线程中运行。 在Windows中&#xff0c;每个窗口都有一个与之相关联的线程&#xff0c;这个线程负责处理窗口的消息。当窗口接收到消息时&#xff0c;系统会将消息发送给创建窗口的线程&#xff0c;并在该线程上调用窗口过程函数来处理消息。 这…

领导跳槽邀请,测试员该如何抉择?

在职场中&#xff0c;领导跳槽并邀请下属一同前往新公司&#xff0c;是一个既常见又令人纠结的选择。对于测试员来说&#xff0c;这个决定更是充满了未知与风险。那么&#xff0c;面对这样的机会&#xff0c;我们该如何权衡利弊&#xff0c;做出明智的选择呢&#xff1f; 首先&…

你眼中的IT行业现状与未来趋势

一&#xff1a;阐述 现在IT、科技行业从业人员开始求稳&#xff0c;部分从业人员开始转向DBA、运维&#xff08;企业相当稳定&#xff09;、硬件工程师等&#xff08;技术过硬&#xff0c;不是随便可以转的&#xff09;&#xff0c;但是这些行业职位少&#xff0c;薪水相对不是…