🦉let声明的变量只有在当前作用域有效,不存在变量提升,不允许重复声明。
🦉const声明一个只读的常量。常量:值不可以改变的量。
学了const和let之后,尽量别用var
🦉array.find(callback)
返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
🦉array.findIndex(callback)
返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
🦉展开运算符: … 可以展开数组和对象
const arr = [1, 2, 3]
console.log(…arr) // 1 2 3
应用:
代替ES5的apply方法
🦉复制数组,属于克隆
const a1 = [1, 2];
const a2 = […a1];
🦉合并数组,属于浅拷贝 代替concat方法[…arr1, …arr2, …arr3]
🦉Array.from()方法用于将两类对象转为真正的数组
let arrayLike = {
‘0’: ‘a’,
‘1’: ‘b’,
‘2’: ‘c’,
length: 3
};
let arr2 = Array.from(arrayLike); // [‘a’, ‘b’, ‘c’]
🦉fill()方法使用给定值,填充一个数组。
应用:模拟多条重复的数据
let arr = new Array(3).fill({name: “Mike”});
arr[0].name = “Ben”;
arr
// [{name: “Ben”}, {name: “Ben”}, {name: “Ben”}]
let arr = new Array(3).fill([]);
arr[0].push(5);
arr
// [[5], [5], [5]]
注意:如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象。
🦉数组遍历
keys()是对键名的遍历、
values()是对键值的遍历,
entries()是对键值对的遍历。
它们都返回一个遍历器对象
可以用for…of循环进行遍历
🦉includes()
表示某个数组是否包含给定的值
与字符串的includes方法类似
代替es5的indexof方法,不需要再判断是否为-1,且可以判断NaN
🦉Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。
[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]