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…

软考高级最容易被挂掉的论文,千万别乱写!

高级考生最没把握的科目应该就是论文了,有些考生考了几次都败在论文上了。那么导致论文不合格的写作误区有哪些?最后十多天,该如何准备呢? 常见写作误区 误区一:偏题 在论文写作时不能偏题,要紧扣子题干…

Visual Studio构建NodeJS原生代码在Electron中的报错问题

文章目录 对比NODE-GYP工具解决问题进一步研究win_delay_load_hook.cc代码MAC中是不需要这个东西的这个标题有点长,相对是一个比较具体的场景,但是这个问题在我自己的实际开发中,确实困扰了我一段时间。 因为在windows下做设备驱动,上位机的开发中。Visual Studio是一个比较…

要想通过等保测评,这7个问题你必须了解

1.什么是等级保护测评? 2.为什么要做等级保护测评? 3.等保1.0与2.0的区别在哪里? 4.等级保护测评参考标准有哪些? 5.等级保护测评的级别有哪些以及哪些系统需要? 6.等保测评的主要内容是什么? 7.等级…

如何利用代理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的结构化流处理和流处理功能&#…

MySQL中表的插入,修改,删除语法

插入 插入数据有四种方法,代码如下 -- 给表中添加元素 -- insert into 表名 (列名) values(数据)INSERT INTO student(NAME,gender,birthday,phone)VALUES(张三,男,2003-2-10,13333333333) INSERT INTO student(NAME,gender,birthday,phone,address,height,rig_time) VALUES(…

在Mac环境下打包Python应用

1、创建虚拟环境 conda create -n ur_name python3.7 pip install -r requirement.txt 2、配置文件生成 cd ur_project py2applet --make-setup __main__.py 3、APP打包 # 编辑setup.py文件,具体参考本文文献 python setup.py py2app 用 py2app 将 Python 脚本打包成 Mac…

高级优化理论与方法(十二)

高级优化理论与方法(十二) LPDuality of LPWeek LP Duality TheoremStrong LP Duality TheoremCorollary Complementary Slackness ConditionRemarksExample Non-Simplex MethodsKhachiyan (Ellipsoid)Karmarkar (Interior point) Integer Linear Progra…

Leetcode-有效的括号

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

MongoDB 数据探索之道:查询文档操作详解

在 MongoDB 数据库中,查询文档是一种强大的工具,能够帮助您深入了解数据并提取所需信息。无论是从大型数据集中检索特定记录,还是进行数据统计和分析,查询文档都是不可或缺的。在本指南中,我们将深入探讨 MongoDB 查询…

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

Mysql sql_mode=only_full_group_by时如何实现根据单个字段分组

SELECT* FROMTABLE_NAME t group by device_id ORDER BY create_time desc报错 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column TABLE_NAME.t.id which is not functionally dependent on columns in GROUP BY clause; this is …

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

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