JavaScript
集合引用类型
1.Object
大多数引用值的示例使用的是Object类型,显式创建Object对象共有两种方式。
let obj1 = new Object();
let obj2 = {};
Object的属性通过点语法来存取,即obj.propertyName
,当属性名使用点语法可能会导致语法错误或包含有关键字、保留字时,使用中括号语法访问,即obj["propertyName"]
。
2.Array
Array数组与其他语言里的数组都是一组有序的数据,但是在JavaScript中,Array中的每个元素可以是任何类型的数据,不限于原始值和应用值。创建Array可以有以下几种方式:
let arr1 = new Array();
let arr2 = new Array(10);
let arr3 = new Array("a" , 10 , obj ,undifined)
let arr4 = ["a" , 10 , obj ,undifined]
let arr5 = Array.from(new Map());
let arr6 = Array.from(new Set());
let arr7 = Array.from("red");
需要注意数组空位和数组索引的特性。ECMAScript提供了Array.isArray() 方法来确定一个值是否是数组。
数组迭代器主要有3个方法:Array.keys() 、Array.values() 、Array.entries()
复制和填充:copyWith() 、 fill()
转换:toString()、toLocalString()、valueOf()
栈:push()、pop()
队列:shift() 、push()
排序:reverse()、sort()
操作方法:concat()、splice()
搜索和位置:indexOf()、lastIndexOf()、includes()、find()、findIndex()
迭代方法:every()、filter()、forEach()、map()、some()
归并:reduce()、reduceRight()
定型数组
2.Map
与java中的Map无太大差异
WeekMap:key只能是一个Object或者继承自Object的类,key不会占用引用次数,无法迭代。
3.Set
与java中的Set无太大差异
WeekSet:值只能是一个Object或者继承自Object的类,值不会占用引用次数,无法迭代。