第四周笔记

Object.keys() 静态方法返回一个由给定对象自身的可枚举的字符串键属性名组成的数组。

Object.values() 静态方法返回一个给定对象的自有可枚举字符串键属性值组成的数组。

Object.getOwnPropertyNames() 静态方法返回一个数组,其包含给定对象中所有自有属性

  (包括不可枚举属性,但不包括使用 symbol 值作为名称的属性)

Object.getOwnPropertySymbols() 静态方法返回一个包含给定对象所有自有 Symbol 属性的数组。

 Symbol.for() 类似单例模式,首先会在全局搜索被登记的 Symbol 
         中是否有该字符串参数作为名称的 Symbol 值,如果有即返回该 Symbol 值,
         若没有则新建并返回一个以该字符串参数为名称的 Symbol 值,并登记在全局环境中供搜索。

Symbol.keyFor() 返回一个已登记的 Symbol 类型值的 key ,用来检测该字符串参数作为名称的 Symbol 值是否已被登记。

     Map()对象有size个数与object没有长度

     Map 构造函数可以将一个 二维 键值对数组转换成一个 Map 对象

     使用 Array.from 函数可以将一个 Map 对象转换成一个二维键值对数组

Map的特性
        Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
        Map 对象记得键的原始插入顺序。
        Map 对象具有表示映射大小的属性。
        
        Map 对象的几个常用方法和属性
        new Map() 创建新的 Map 对象。
        set() 为 Map 对象中的键设置值。
        get() 获取 Map 对象中键的值。
        entries() 返回 Map 对象中键/值对的数组。
        keys() 返回 Map 对象中键的数组。
        values() 返回 Map 对象中值的数组。
        
        共同点
        二者都是以key-value的形式对数据进行存储;
        
        不同点
        key的数据类型范围不同
        obj可以作为key的仅有number、string、symbol。
        map均可以。
        
        key的顺序不同。
        obj通过obj.keys()打印出来的属性顺序是 number–字符串
        map的key顺序是声明顺序。
        
        创建方式不同。
        obj有三种创建方式 字面量{}、new Object() 、构造函数。
        map仅支持new Map()
        
        key的调用不同。
        map只能用原生的get方法调用。
        
        设置属性的方式不同
        map只能使用set(key,val)方法设置属性。
        
        Size属性
        map有size属性,对象没有。Map.size 返回 Map 中元素的数量,而 Object 的键值对个数只能手动计算

        Set是唯一值的集合类似与数组,常用于数组去重
        Set 对象的几个常用方法和属性
        new Set() 创建新的 Set 对象。
        add() 向 Set 添加新元素。
        clear() 从 Set 中删除所有元素。
        delete() 删除由其值指定的元素。
        has() 如果值存在则返回 true。
        forEach() 为每个元素调用回调。
        keys() 返回 Set 对象中值的数组。
        size 返回元素个数。

        arguments 获取没有形参的函数值,es6中箭头函数不能使用arguments方法

fn1();箭头函数this指向永远指向window

箭头函数的特性
        不绑定arguments,用rest参数…解决
        本身没有this的概念,捕获其所在上下文的 this 值,作为自己的 this 值,this指向全局
        箭头函数不能使用new(会报错)
        箭头函数没有原型属性(prototype)
        箭头函数不能当做Generator函数,不能使用yield关键字
        箭头函数不能换行
        箭头函数有constructor、length属性
        箭头函数可以立即执行

call,applay bind 的区别
        1.applay、call、bind他们三个都能改变函数this的指向问题;
        2.applay、call这两个方法的主动调用,bind返回的是改变this指向后的新函数;
        3.传参的问题区别,call和bind都是直接传递参数,applay传递的是数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值