js中Object和Map的区别

32,851次阅读
没有评论

共计 1223 个字符,预计需要花费 4 分钟才能阅读完成。

js 中 Object 和 Map 的区别

Object 是最常用的一种引用类型数据,可用于存储键值对的集合。

Map 是键值对的集合,才会用 Hash 结构存储。(map 是 es6 以后新增的)

共同点: 键值对的动态集合,支持增加和删除键值对

js 中 Object 和 Map 的区别js 中 Object 和 Map 的区别

不同点
1. 构造方式

		
        const obj = {
            a: 1,
            b: 2
        }
        const o = new Object()

        const o2 = Object.create();
        
        
        const map = new Map()

        const m = new Map([
            ['a', '1'],
            ['b', '2']
        ])

2. 键的类型

		
        const obj = {
            a: 1,
        }
        const arr1 = [1, 2]
        obj[arr1] = 'arr'
        console.log(obj); 

js 中 Object 和 Map 的区别

		
        const m = new Map()

        m.set('a', 1)
        m.set('2', '2')
        m.set(2, 2)
        m.set(arr1, 'arr')
        console.log(m);

js 中 Object 和 Map 的区别

3. 键的顺序

		
        const obj = {
            2: 2,
            '1': 1,
            'b': 'b',
            1.1: 1.1,
            0: 0,
            'a': 'a',
            [Symbol('s1')] : 's2',
            [Symbol('s2')] : 's1',
        }
        console.log(Object.keys(obj));

js 中 Object 和 Map 的区别

		
        const m = new Map()

        m.set(2, 2)
        m.set('1', 1)
        m.set('b', 'b')
        m.set(0, 0)
        m.set('a', 'a')
        m.set(Symbol('s1'), 's1');

        console.log(m.keys());

js 中 Object 和 Map 的区别

4. 键值对 size

		
        const obj = {
            2: 2,
            '1': 1,
            'b': 'b',
        }
        console.log(Object.keys(obj).length);   

        
        const m = new Map()

        m.set(2, 2)
        m.set('1', 1)
        m.set('b', 'b')
        m.set(0, 0)
        m.set('a', 'a')
        m.set(Symbol('s1'), 's1');

        console.log(m.size);    

5. 键值对的访问

		
        const obj = {
        }

        obj.name = '张三'
        obj.age = 18

        
        obj.name === undefined

        
        delete obj.name

        
        const m = new Map()

        
        m.set('name', '张三')
        m.set('age', 18)

        
        m.has('name')

        
        m.get('name')

        
        m.delete('name')

        
        m.keys()

        
        m.clear()

6. 迭代器


7.JSON 序列化

        
        const o = {
            name: '张三',
            age: 18
        }
        console.log(o);
        console.log(JSON.stringify(o));

js 中 Object 和 Map 的区别


        const map = new Map([
            ['name', '张三'],
            ['age', 19]
        ])
        console.log(map);
        console.log(JSON.stringify(Array.from(map)));

js 中 Object 和 Map 的区别

8. 应用场景

原文地址: js 中 Object 和 Map 的区别

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-02发表,共计1223字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)