【发布时间】:2017-02-03 12:08:19
【问题描述】:
借助 JavaScript 的灵活性,我们可以编写充满副作用的代码,或者只是纯粹的函数式代码。
我一直对函数式 JavaScript 很感兴趣,并希望以这种范式开始一个项目。关于这一点的短绒肯定可以帮助我收集良好的实践。是否有任何 linter 可以强制执行纯函数式和无副作用的样式?
【问题讨论】:
-
@VinodLouis:据我所知,JSLint 没有提供任何检查功能纯度的方法。
-
你能描述一下你所说的
side-effects in JavaScript吗? -
JS 以副作用为特色
-
@Justinas:参照透明度或纯度意味着您可以在代码中的任何地方用它的值替换表达式,而不会改变程序的含义。如果您不能 这样做,则表达式是不纯的并且不是引用透明的。或者,换句话说:函数的结果必须完全包含在它的返回值中,并且只能依赖于它的参数。 除了之外发生的任何其他副作用:I/O、变异状态、抛出异常、打印到控制台、访问网络、生成工作器、读取或写入文件或数据库。
-
@Thomas:嗯,按照你的推理,错误也是特征。
标签: javascript functional-programming eslint