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的时候 表示遍历到没有元素可以遍历的情况了

相关推荐

  1. ES6 笔记03

    2024-05-13 09:36:04       32 阅读
  2. Day02-ES6

    2024-05-13 09:36:04       52 阅读
  3. ES6笔记总结

    2024-05-13 09:36:04       51 阅读
  4. ES6笔记-symbol

    2024-05-13 09:36:04       50 阅读
  5. ES6语法笔记

    2024-05-13 09:36:04       39 阅读
  6. Day03-ES6

    2024-05-13 09:36:04       62 阅读
  7. Day01-ES6

    2024-05-13 09:36:04       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 09:36:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 09:36:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 09:36:04       82 阅读
  4. Python语言-面向对象

    2024-05-13 09:36:04       91 阅读

热门阅读

  1. Redis——Redis 3.0之前各大厂商的集群方案

    2024-05-13 09:36:04       28 阅读
  2. HTML5

    HTML5

    2024-05-13 09:36:04      22 阅读
  3. Python中如何将小数转化为百分数进行输出

    2024-05-13 09:36:04       24 阅读
  4. 多线程之交替输出abc

    2024-05-13 09:36:04       30 阅读
  5. css基础之用户界面样式、导航栏和三角

    2024-05-13 09:36:04       36 阅读
  6. 源码:zlib例程 C++

    2024-05-13 09:36:04       36 阅读
  7. 串转并74hC595控制流水灯

    2024-05-13 09:36:04       27 阅读
  8. 神经网络权重初始化学习

    2024-05-13 09:36:04       25 阅读
  9. LeetCode 第397场周赛个人题解

    2024-05-13 09:36:04       28 阅读
  10. C#字符串的拼接

    2024-05-13 09:36:04       28 阅读
  11. 稻盛和夫《活法》读后感

    2024-05-13 09:36:04       30 阅读
  12. AI技术如何提升内容生产的效率和质量

    2024-05-13 09:36:04       31 阅读
  13. mysql权限分类

    2024-05-13 09:36:04       27 阅读
  14. Redis

    Redis

    2024-05-13 09:36:04      25 阅读
  15. Python脚本同步Hive表结构到MySQL

    2024-05-13 09:36:04       32 阅读