Array.of()创建数组
var a = Array.of(1,2,3,"abc",undefined,{name:1},function aa(){});
console.log(a);
var b = [1,,2,3];
var c = new Array(3,4,5);
console.log(b);
Array.from(类数组,循环,改变this指向);
可选,map 函数,用于对每个元素进行处理,放入数组的是处理后的元素。
可选,用于指定 map 函数执行时的 this 对象。
var a = Array.from([1,,2,3,"abc",{name:1}]);
console.log(a);
var a = Array.from([1,2,3],function(item){
return item*2;
});
var a = Array.from([1,2,3],(item)=>item*2);
console.log(a);
let obj = {
do:(n)=>{
return n*10;
}
}
console.log(obj.do(4));
var a = Array.from([1,2,3],function(item){
return this.do(item);
},obj);
console.log(a);
find()方法
查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素
let arr = Array.of(1, 2, 3, 4);
console.log(arr.find((item) => {
return item>2;
}));
findIndex()查找的是拿元素值去查询下标,则返回第一个元素下标
console.log(arr.findIndex((item) => item==4));
fill(填充的值,包含起始下标,不包含结束下标默认到最后)将一定范围索引的数组元素内容填充为单个指定的值。
console.log(arr.fill(0,0,2));
copyWithin()将一定范围索引的数组元素修改为此数组另一指定范围索引的元素。
参数1:被修改的起始索引
参数2:被用来覆盖的数据的起始索引
参数3(可选):被用来覆盖的数据的结束索引,默认为数组末尾
console.log([1, 2, 3, 4,5,6,7,8,9].copyWithin(0,2,5));
includes()数组是否包含指定值。
var a = [1, 2, 3].includes(5);
var set = new Set([1, 2, 3])
var a = set.has(0);
console.log(a);
Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。
var map = new Map([["name","zs"],["age",18]])
console.log(map);
var a = map.has("name");
var map = new Map([[11,22]])
console.log(map);
var a = map.has(11);
console.log(a);
flat(嵌套层数)嵌套数组转一维数组
Infinity
console.log([1 ,[2, 3],[[[4,5],6],7],8].flat(Infinity));
flatMap()
参数1:遍历函数,该遍历函数可接受3个参数:当前元素、当前元素索引、原数组
参数2:指定遍历函数中 this 的指向
var obj = {
do(n){
return n*10;
}
}
console.log([1 ,[2, 3],[[[4,5],6],7],8].flat(Infinity).flatMap(function(item) {
return this.do(item);
},obj));
匿名类
let Example = class {
constructor(a) {
this.a = a;
}
}
1.不可重复声明。
2.类定义不会被提升,这意味着,必须在访问前对类进行定义,否则就会报错。
3.类中方法不需要 function 关键字。
4.方法间不能加分号
命名类
1.constructor 方法是类的默认方法,创建类的实例化对象时被调用。
2.class 本身的属性,即直接定义在类内部的属性( Class.propname ),
不需要实例化。 ES6 中规定,Class 内部只有静态方法,没有静态属性
静态属性关键字static
3.添加在prototype原型中的属性称为公共属性