Open wangbinze opened 3 years ago
js中的集合引用类型主要有:
显式地创建Object的实例的两种方式:
使用 new 操作符和 Object 构造函数
let person = new Object();
person.name = "小明";
person.age = 26;
person[5] = true
对象字面量(对象字面量表示法中,属性名可以是字符串或数值)
在使用对象字面量表示法定义对象时,并不会实际调用 Object 构造函数。
let person = {
"name": "小明",
"age": 26,
5: true
};
Object东西比较多,后续会相信的针对Object进行学习后知识点的梳理。
一组有序的数据,数组中每个槽位可以存储任意类型的数据。动态大小,会随着数据添加而自动增长。
使用Array构造函数
let colors = new Array(3); // 创建一个包含 3 个元素的数组
let names = new Array("Greg"); // 创建一个只包含一个元素,即字符串"Greg"的数组
//可以省略 new 操作符
数组字面量
与对象一样,在使用数组字面量表示法创建数组不会调用 Array 构造函数。
let colors = ["red", "blue", "green"]; // 创建一个包含 3 个元素的数组
let names = []; // 创建一个空数组
let values = [1,2,]; // 创建一个包含 2 个元素的数组
ES6 新增的用于创建数组的静态方法:from()和 of()。from()用于将类数组结构转换为数组实例,而 of()用于将一组参数转换为数组实例。
类数组的转换还可以使用 扩展运算符 ...
数组 length 属性的独特之处在于,它不是只读的。通过修改 length 属性,可以从数组末尾删除或添加元素。
Array东西比较多,后续会相信的针对Array进行学习后知识点的梳理。
定型数组(typed array)是 ECMAScript 新增的结构,目的是提升向原生库传输数据的效率。实际上,JavaScript 并没有“TypedArray”类型,它所指的其实是一种特殊的包含数值类型的数组。
一个提供JavaScript 接口的、C 语言风格的浮点值数组。早期主要用于WebGL。
主要用于三维开发中的使用,如果感兴趣可自行了解。
作为 ECMAScript 6 的新增特性,Map 是一种新的集合类型,为这JavaScript带来了真正的键/值存储机制。Map 的大多数特性都可以过 Object 类型实现,但二者之间还是存在一些细微的差异。
与 Object 只能使用数值、字符串或符号作为键不同,Map 可以使用任何 JavaScript 数据类型作为键。
与 Object 类型的一个主要差异是,Map 实例会维护键值对的插入顺序,因此可以根据插入顺序执行迭代操作。
ECMAScript 6 新增的“弱映射”(WeakMap)是一种新的集合类型,为这门语言带来了增强的键/值对存储机制。WeakMap 是 Map 的“兄弟”类型,其 API 也是 Map 的子集。WeakMap中的“weak”(弱),描述的是 JavaScript 垃圾回收程序对待“弱映射”中键的方式。
弱映射中的键只能是 Object 或者继承自 Object 的类型,尝试使用非对象设置键会抛出TypeError。值的类型没有限制。
ECMAScript 6 新增的 Set 是一种新集合类型,为这门语言带来集合数据结构。Set 在很多方面都像是加强的 Map,这是因为它们的大多数 API 和行为都是共有的。
ECMAScript 6 新增的“弱集合”(WeakSet)是一种新的集合类型,为这门语言带来了集合数据结构。
JS中的集合引用类型有哪些,分别介绍一下