gpt4 book ai didi

javascript - 有任何 linter 可以警告 JavaScript 中的副作用吗?

转载 作者:数据小太阳 更新时间:2023-10-29 06:14:52 24 4
gpt4 key购买 nike

凭借 JavaScript 的灵 active ,我们可以编写充满副作用的代码,或者只是纯函数式的代码。

我一直对函数式 JavaScript 很感兴趣,并且想在这个范例中开始一个项目。一个关于它的 linter 肯定可以帮助我收集好的实践。是否有任何 linter 来强制执行纯功能和无副作用的风格?

最佳答案

纯度分析相当于Solving the Halting Problem,所以一般情况下,任何一种可以判断代码是纯的还是不纯的静态分析都是不可能的。总会有无穷多的程序,它们是否是纯的是不可判定的;其中一些程序是纯的,一些是不纯的。

现在,您故意使用术语“linter”而不是静态分析器(尽管 linter 当然只是静态分析器),这似乎暗示您可以接受近似的启发式结果。您可以有一个 linter,它有时会告诉您您的代码是纯的,有时会告诉您您的代码是不纯的,并且大多数时候会告诉您它无法决定您的代码是纯的还是不纯的。你可以有一个已知是纯操作的白名单(例如,使用 + 运算符添加两个 Number),以及一个已知是纯操作的黑名单不纯(例如,任何可以抛出异常的东西、任何类型的循环、if 语句、Array.prototype.forEach)并对它们进行启发式扫描。

但最终,结果会太不可靠,无法对它们做任何严肃的事情。

关于javascript - 有任何 linter 可以警告 JavaScript 中的副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42023962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com