JavaScript中如何区分Object、Map和WeakMap的功能与特性?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2044个文字,预计阅读时间需要9分钟。
前言:ECMAScript 6(简称 ES6)之前,在JavaScript中实现键/值式存储可以使用Object对象方便高效地完成。通过使用对象的属性作为键,再使用属性值来引用值,我们可以实现这种存储方式。这种方法不仅简化了代码,而且提高了效率。尽管这种实现没有问题,但TC39委员会仍然会专门对此进行探讨。
前言
ECMAScript 6以前,在JavaScript中实现“键/值”式存储可以使用Object来方便高效地完成,也就是使用对象属性作为键,再使用属性来引用值。但这种实现并非没有问题,为此TC39委员会专门为“键/值”存储定义了一个规范。作为ECMAScript 6的新增特性,Map是一种新的集合类型,为这门语言带来了真正的键/值存储机制。Map的大多数特性都可以通过Object类型实现,但二者之间还是存在一些细微的差异。具体实践中使用哪一个,还是值得细细甄别。
一、map 的使用
初始化
object 可以使用字面量、构造函数、Object.crate的形式创建。而map 只能通过new 关键字和构造函数创建。对于map如果想在创建的同时初始化实例,可以给Map构造函数传入一个可迭代对象,需要包含键/值对数组。
本文共计2044个文字,预计阅读时间需要9分钟。
前言:ECMAScript 6(简称 ES6)之前,在JavaScript中实现键/值式存储可以使用Object对象方便高效地完成。通过使用对象的属性作为键,再使用属性值来引用值,我们可以实现这种存储方式。这种方法不仅简化了代码,而且提高了效率。尽管这种实现没有问题,但TC39委员会仍然会专门对此进行探讨。
前言
ECMAScript 6以前,在JavaScript中实现“键/值”式存储可以使用Object来方便高效地完成,也就是使用对象属性作为键,再使用属性来引用值。但这种实现并非没有问题,为此TC39委员会专门为“键/值”存储定义了一个规范。作为ECMAScript 6的新增特性,Map是一种新的集合类型,为这门语言带来了真正的键/值存储机制。Map的大多数特性都可以通过Object类型实现,但二者之间还是存在一些细微的差异。具体实践中使用哪一个,还是值得细细甄别。
一、map 的使用
初始化
object 可以使用字面量、构造函数、Object.crate的形式创建。而map 只能通过new 关键字和构造函数创建。对于map如果想在创建的同时初始化实例,可以给Map构造函数传入一个可迭代对象,需要包含键/值对数组。

