ES6 并没有直接引入新的迭代方法(如 Array.prototype.forEach
、Array.prototype.map
、Array.prototype.filter
等)作为对这些方法的改进,因为这些方法在 ES5 中就已经存在。然而,ES6 确实为数组和其他可迭代对象引入了一些新的迭代方法,以及一些对现有方法的改进和扩展。
文末有我帮助400多位同学成功领取到前端offer的场景题哦
以下是 ES6 中引入的一些新的迭代方法和对现有方法的改进:
- 新的迭代方法:
Array.prototype.find()
:返回数组中满足提供的测试函数的第一个元素的值。否则返回undefined
。Array.prototype.findIndex()
:返回数组中满足提供的测试函数的第一个元素的索引。否则返回 -1。Array.prototype.fill()
:用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。Array.prototype.includes()
:判断一个数组是否包含一个特定的值,根据情况,如果需要,还会搜索数组是否被改变或正在被改变。Array.prototype.entries()
、**Array.prototype.keys()**
和**Array.prototype.values()**
:这些方法返回新的数组迭代器对象,它包含数组中每个索引的键/值对、键或值。这些方法的主要用途是为for...of
循环提供便利。
- 对现有方法的扩展:
- 扩展运算符(Spread Operator)
**...**
:可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时,将对象表达式按 key-value 的方式展开。 Array.from()
:从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
这些新方法和扩展提供了更多的灵活性和功能,使开发者能够更轻松地处理数组和其他可迭代对象。尽管 ES6 没有直接改进 forEach
、map
、filter
等方法,但这些新方法可以与它们一起使用,以创建更强大和高效的代码。
堪称2024最强的前端面试场景题,让421人成功拿到offer