JavaScript中的纯函数和边际效应--常见的面试问题

212 阅读2分钟

JavaScript中的纯函数和边际效应--常见的面试问题

理解JavaScript中纯函数和副作用的概念。最常见的面试问题。

函数是JavaScript编程的面包和黄油。它为我们提供了一种通过减少代码的重复性来结构化大型程序的方法。函数通常被分为三类。

  1. 因其副作用而被调用的函数。
  2. 因其返回值而被调用的函数。
  3. 一个为其副作用和返回值而调用的函数。

副作用

简单地说,副作用是指我们执行的动作所产生的任何影响或反应。最常见的副作用的例子是。

  • 写在控制台
  • 写在屏幕上
  • 修改一个外部/全局变量或属性

在良好的编程实践中,我们建议避免使用副作用。尽管如此,也没有必要为使用它而感到难过,因为副作用有时是有帮助的。例如,在我们的应用程序中,经常需要使用一个做HTTP请求的副作用。

例子

这里有一个例子来理解JavaScript中的副作用。在这个例子中,我们向名为printInventory() 的函数传递一些参数*,* 它将把这些数据记录在控制台,这在JavaScript中被称为副作用。

纯函数

纯函数是JavaScript中特殊类型的产生价值的函数,既不产生任何副作用,也不依赖其他代码的副作用。例如,它不会读取其值可能发生变化的全局变量。简单地说,如果一个函数对相同的参数产生相同的值,并且不做任何其他事情,那么你可以称它为一个 纯函数。

优点

  • 与直接执行副作用的函数相比,返回值的函数更容易被用在许多新的方面。
  • 这种函数的另一个好处是,与非纯函数相比,它更容易测试。你可以通过简单地调用它来进行测试,并保证如果它在该上下文中工作正常,那么它在任何上下文中都能工作。

例子

这里有一个例子来理解JavaScript中纯函数的定义和行为。例子中的discountedValue 函数是一个纯函数,因为它既不使用/改变任何全局绑定,也不执行任何其他副作用,只是返回一个值。另一个函数printPrice产生的副作用是使用纯函数返回的值在控制台打印日志。

medium.com/media/9697c…

结语

这篇文章的主要目的是帮助你理解JavaScript中的副作用和纯函数的含义,这在面试中经常被问到。请喜欢这篇文章,关注我并保持更新,以了解更多类似的有趣内容。谢谢你阅读这篇文章。