Array.prototype 中哪些函数是 Javascript 中的纯函数

问题描述 投票:0回答:1

我知道纯函数有以下一些规则。

  1. 无副作用。
  2. 当您调用此函数时,始终具有相同的输入和相同的输出。

有人可以帮我列出 ES2020 之前 Javascript 中的所有纯函数吗?

我知道切片是一个纯函数

Array.prototype.slice

javascript functional-programming
1个回答
3
投票

注意: 此列表包括该方法出现的第一个标准。为了清楚地了解旧标准:

  • [ES1999] 是 ES1 - ECMAScript 标准第一版
  • [ES1999] 是 ES3 - ECMAScript 标准的第三版
  • [ES2009]是ECMAScript标准的5.0版本,已于2011年修订为5.1,但没有添加新的相关方法

数组静态方法

数组实例方法

1 这些接受回调参数。虽然该方法不会改变任何参数,但回调可能会改变。因此,从技术上讲,可以传递不纯粹的回调,这使得整个操作不纯粹。

2

返回一个迭代器。该操作是纯粹的,但使用迭代器则不是。例如,如果您立即获取迭代器的所有值,或者获取一些值,然后就地更改数组,然后继续从迭代器获取值,则可能会得到不同的结果。

3

技术上 其操作纯粹,但预期它接受的回调会产生副作用。如果回调没有副作用,它可能不会是一个有用的操作。

4

这是现有方法的纯版本。它不会改变当前实例,而是返回一个应用了操作的新数组。

© www.soinside.com 2019 - 2024. All rights reserved.