返回顶部
首页 > 资讯 > 前端开发 > html >JavaScript代码中的函数参数和副作用是什么
  • 715
分享到

JavaScript代码中的函数参数和副作用是什么

2024-04-02 19:04:59 715人浏览 安东尼
摘要

这篇文章给大家介绍javascript代码之函数参数和副作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。函数是JavaScript程序的重要组成部


这篇文章给大家介绍javascript代码之函数参数和副作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

函数是JavaScript程序的重要组成部分,用于将代码分成可重用的块。因此,为了拥有整洁的JavaScript代码,我们需要具有易于理解的函数。

本文将介绍优质函数的更多属性,包括标志参数,二元和三元函数以及副作用。

JavaScript代码中的函数参数和副作用是什么

标志参数

布尔参数应谨慎使用。它使函数签名更加复杂,并告诉我们函数不仅做一件事(具有多个路径)。

二元函数

二元函数比采用较少参数的函数更难理解。但有些时候使用二元函数是有道理的。例如,如果有一个保存笛卡尔坐标的对象,那么它应该有2个参数。

例如,可以创建一个带有构造函数的类,该构造函数有2个参数,如下所示:

class Point {   constructor(x, y) {     this.x = x;     this.y = y;   } }const point = new Point(1, 2);

用其他方式定义它几乎是不可能的。

但是,我们必须要意识到,与使用较少参数的函数相比,二元函数需要更多的时间和精力。

三元函数

具有3个参数的函数要花费大量时间和精力才能理解具有2个参数的函数。

如果存在2个或更少的参数,则有更多的参数组合可供考虑。

将参数合并为对象

如果一个函数含有多个参数,应该考虑将它们合并为对象。

如果参数之间有关联,则更应该这样做。例如,以下函数含有许多参数:

const describeFruit = (color,name, size, price, numSeeds, type) => {     return `${fruitName} is ${fruitColor}.It's ${fruitSize}. It costs ${price}. It has ${numSeeds}. The type if ${type}`; }

6个参数可能太多,可以通过传入一个对象来清理它:

const describeFruit = (fruit)=> {   return `${fruit.name} is${fruit.color}. It's ${fruit.size}. It costs ${fruit.price}. It has${fruit.numSeeds}. The type if ${fruit.type}`; }

如我们所见,它更加整洁,且无需担心大量参数的传递。

由于函数较为短小,因此也更适合屏幕显示。

5个参数可能是一个函数应该包含的最大值。

JavaScript代码中的函数参数和副作用是什么

动词和关键词

将动词和关键字包含在函数名称中不失为一个好主意,因为它们会执行某些操作,这意味着名称中的动词是合理的。

另外,我们需要知道执行操作的对象。这意味着必须添加一些关键字才能做到这一点。

例如,符合这一点的优质函数定义类似于:

const copyArray = (array) =>[...array];

copyArray 名称让我们知道函数复制了一个数组。

它还让我们知道要传递给函数的内容,这显然是一个数组。

无副作用

副作用是函数中的代码会对函数外部的内容进行更改。

这是很糟糕的,因为它会对函数之外的内容进行隐藏更改。

我们应该尽可能避免这种情况,因为这会造成一些出乎意料的事情,并且要花更多的时间进行测试,因为除了接受参数,执行操作并返回结果外,它还对必须考虑的函数之外的内容进行了更改。

这意味着我们必须测试函数返回结果之外的内容。

例如,如果有:

let numFruits = 1;  const addFruit = () => {    numFruits++;  }const removeFruit = () => {    numFruits--;  }

那么我们有2个具有副作用的函数,因为它们都更改了各自函数外部的 numFruits变量。

编写这些函数的更好方法是将它们编写为纯函数。纯函数是在传入相同参数的情况下返回相同内容的函数。而且,它没有副作用。

因此,纯函数更易于测试,并且它们的行为也是可以预测的。

重写上面的代码,如下所示:

let numFruits = 1; const addFruit = (numberOfFruits) => numberOfFruits + 1; const removeFruit = (numberOfFruits) => numberOfFruits - 1;numFruits = addFruit(numFruits); numFruits = removeFruit(numFruits);

现在,有2个函数来接收numFruits 参数,并分别返回一个更大或更小的数字。

然后可以使用它们来更改函数外部的numFruits变量。

如我们所见,它们对 numFruits 不执行任何操作,而是分别返回numberOfFruits参数加1或减1。

如果为它们编写测试,则可以通过传入输入和检查输出是否是我们想要的内容来轻松测试它们。这比将副作用赋予可能适用于测试代码的变量要好得多。

JavaScript代码中的函数参数和副作用是什么

标志参数应最小化。他们告诉我们,该函数不仅完成一件事情,而且是函数签名中的另一个参数。

使用较少参数的函数要优于使用较多参数的函数。如果需要很多参数,请考虑将它们合并成一个对象。

最后,若条件允许,应尽量避免副作用。具有副作用的函数会执行隐藏操作,并且很难对它进行测试。纯函数不会产生副作用,因此更具可测试性和可预测性。

关于JavaScript代码之函数参数和副作用是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: JavaScript代码中的函数参数和副作用是什么

本文链接: https://lsjlt.com/news/80713.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript代码中的函数参数和副作用是什么
    这篇文章给大家介绍JavaScript代码之函数参数和副作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。函数是JavaScript程序的重要组成部...
    99+
    2024-04-02
  • javascript中定义函数的代码是什么
    这篇文章主要介绍“javascript中定义函数的代码是什么”,在日常操作中,相信很多人在javascript中定义函数的代码是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • JavaScript中函数的作用是什么
    本篇内容介绍了“JavaScript中函数的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • JavaScript中arrow函数的作用是什么
    本篇文章为大家展示了JavaScript中arrow函数的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们先来按常规语法定义函数:function&nb...
    99+
    2024-04-02
  • javascript中eval函数的作用是什么
    本篇文章给大家分享的是有关javascript中eval函数的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。(1)介绍javascript中的eval函数的用法(2)...
    99+
    2023-06-03
  • JavaScript eval()函数的作用是什么
    JavaScript的eval()函数的作用是将一个字符串作为脚本代码进行解析和执行。它可以动态地执行字符串中的JavaScript...
    99+
    2023-10-11
    JavaScript
  • JavaScript 函数闭包的含义和作用是什么
    这篇文章主要讲解了“JavaScript 函数闭包的含义和作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript 函数闭包的含义和作用...
    99+
    2024-04-02
  • python中的函数参数是什么
    这篇文章主要讲解了“python中的函数参数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中的函数参数是什么”吧!说明函数参数,增加函数的通用性,针对相同的数据处理逻辑,可...
    99+
    2023-06-20
  • JavaScript函数中的参数怎么应用
    这篇文章主要介绍了JavaScript函数中的参数怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript函数中的参数怎么应用文章都会有所收获,下面我们一起来...
    99+
    2024-04-02
  • mysql和oracle中函数的作用是什么
    这篇文章给大家介绍mysql和oracle中函数的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  一、nvl()函数:  (1)oracle中的nvl()函数:  语法: ...
    99+
    2024-04-02
  • Golang函数作为参数使用的方法是什么
    这篇文章主要讲解了“Golang函数作为参数使用的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang函数作为参数使用的方法是什么”吧!为什么需要将函数作为参数传递在Gola...
    99+
    2023-07-06
  • C#中构造函数和析构函数的作用是什么
    本篇文章给大家分享的是有关C#中构造函数和析构函数的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#构造函数(constructor)包括实例C#构造函数和静态C#...
    99+
    2023-06-17
  • PHP中json_encode函数参数是什么
    小编给大家分享一下PHP中json_encode函数参数是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近遇到了一些关于PHP函数相关的问题,在和前辈交流的...
    99+
    2023-06-15
  • JSP中response.setContentType()参数的作用是什么
    response.setContentType()方法用于设置实体的MIME类型。MIME类型是一种表示数据类型的标识符,在HTTP...
    99+
    2023-08-12
    JSP
  • JavaScript中isPrototypeOf函数有什么作用
    本篇内容主要讲解“JavaScript中isPrototypeOf函数有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中isPrototypeOf函数有什么作用”吧!...
    99+
    2023-06-25
  • JavaScript中JSON.parse函数和JSON.stringify函数有什么用
    这篇文章主要为大家展示了“JavaScript中JSON.parse函数和JSON.stringify函数有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“...
    99+
    2024-04-02
  • javascript中方法和函数指的是什么
    这篇文章主要介绍了javascript中方法和函数指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在j...
    99+
    2024-04-02
  • javascript中的函数是指什么
    这篇文章主要讲解了“javascript中的函数是指什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中的函数是指什么”吧! ...
    99+
    2024-04-02
  • MySQLump中Lock-Tables参数的作用是什么
    MySQLump中Lock-Tables参数的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mysqldump有一个参数--lo...
    99+
    2024-04-02
  • python中位置参数的作用是什么
    今天就跟大家聊聊有关python中位置参数的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究...
    99+
    2023-06-14
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作