我知道纯函数有以下一些规则。
有人可以帮我列出 ES2020 之前 Javascript 中的所有纯函数吗?
我知道切片是一个纯函数
Array.prototype.slice
注意: 此列表包括该方法出现的第一个标准。为了清楚地了解旧标准:
at
[ES2022]
concat
[ES1999]
entries
2[ES2015]
every
1[ES2009]
filter
1[ES2009]
find
1[ES2015]
findLast
1[ES2023]
findIndex
1[ES2015]
findLastIndex
1[ES2023]
flat
[ES2020]
flatMap()
1[ES2020]
forEach
3[ES2009]
includes
[ES2015]
indexOf
[ES2009]
join
[ES1997]
keys
2[ES2015]
lastIndexOf
[ES2009]
map
1[ES2009]
reduce
1[ES2009]
reduceRight
1[ES2009]
slice
[ES1999]
some
1[ES2009]
toReversed
4 - reverse
[ES2023]的纯版本
toSorted
4 - sort
[ES2023]的纯版本
toSpliced
4 - splice
[ES2023]的纯版本
values
2[ES2015]
with
4 - 为索引赋值的纯粹版本[ES2023]
@@iterator
2[ES2015]
1 这些接受回调参数。虽然该方法不会改变任何参数,但回调可能会改变。因此,从技术上讲,可以传递不纯粹的回调,这使得整个操作不纯粹。
2返回一个迭代器。该操作是纯粹的,但使用迭代器则不是。例如,如果您立即获取迭代器的所有值,或者获取一些值,然后就地更改数组,然后继续从迭代器获取值,则可能会得到不同的结果。
3技术上 其操作纯粹,但预期它接受的回调会产生副作用。如果回调没有副作用,它可能不会是一个有用的操作。
4这是现有方法的纯版本。它不会改变当前实例,而是返回一个应用了操作的新数组。