返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript 中的默认参数怎么写
  • 836
分享到

JavaScript 中的默认参数怎么写

2024-04-02 19:04:59 836人浏览 独家记忆
摘要

这篇文章给大家介绍javascript 中的默认参数怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在 es6  中,js引入了默认函数参数

这篇文章给大家介绍javascript 中的默认参数怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

es6  中,js引入了默认函数参数。如果未向函数调用提供实参,则允许开发人员用默认值初始化函数。以这种方式初始化函数参数将使函数更容易阅读,更不易出错,并为函数提供默认行为。这也帮助我们避免由于传入未定义的参数和解构不存在的对象而产生的错误。

在本文中,我们将学习一下形参和实参之间的区别,了解如何在函数中使用默认形参,了解支持默认形参的其他方法,并了解哪些类型的值和表达式可以用作默认形参。

实参和形参

在解释默认函数参数之前,重要的是要知道参数的默认值是什么。所以我们先回顾函数中实参和形参之间的区别。

在下面的代码中,我们创建一个函数,该函数返回一个给定数的立方:

function cube(x) {   return x * x * x }

此示例中的x变量是一个参数-传递给函数的命名变量,参数必须始终包含在变量中。接着,我们来调用一下这个函数:

cube(10) // 1000

在这种情况下,10是一个参数—调用时传递给函数的值。通常,值也可以用变量,如:

const number = 10  cube(number) // 1000

如果没有将参数传递该函数,函数将隐式地使用undefined作为默认值:

cube() // NaN

在本例中,cube()试图计算undefined * undefined * undefined的值,结果是NaN。

这种自动的行为有时会造成问题。在某些情况下,我们希望参数具有一个值,即使没有向函数传递参数。这就是默认参数特性派上用场的地方。

默认参数语法

如果没有默认参数,我们就需要显式检查undefined的值才能设置默认值,如以下示例所示:

function cube(x) {   if (typeof x === 'undefined') {     x = 5   }    return x * x * x }  cube()

相反,使用默认参数可以用更少的代码实现相同的目标。可以通过使用等式赋值运算符(=)为多维数据集中的参数设置默认值,如下所示:

function cube(x = 5) {   return x * x * x }

现在,在不带参数的情况下调用多维数据集函数时,它将为x赋5并返回计算而不是NaN:

传递参数时,它仍将按预期运行,而忽略默认值:

cube(2)  // 8

需要注意的一个地方,默认参数值还将覆盖作为函数的参数传递的undefined ,如下所示:

cube(undefined)  // 125

这里是使用默认参数 5 来计算的,显示的传递 undefined 会被忽略。

默认参数数据类型任何原始值或对象都可以用作默认参数值。首先,使用 number, string,boolean,object, array和null  作为默认值来设置参数。

const defaultNumber = (number = 42) => console.log(number) const defaultString = (string = 'Shark') => console.log(string) const defaultBoolean = (boolean = true) => console.log(boolean) const defaultObject = (object = { id: 7 }) => console.log(object) const defaultArray = (array = [1, 2, 3]) => console.log(array) const defaultNull = (nullValue = null) => console.log(nullValue)

在不带参数的情况下调用这些函数时,它们都将使用默认值:

defaultNumber()  // 42 defaultString()  // "Shark" defaultBoolean() // true defaultObject()  // {id: 7} defaultArray()   // (3) [1, 2, 3] defaultNull()    // null

注意,在默认参数中创建的任何对象都将在每次调用函数时创建。默认参数的一个常见用例是使用这种行为从对象中获取值。如果我们试图从一个不存在的对象中解构或访问一个值,它将抛出一个错误。但是,如果默认参数是一个空对象,那么它只会给出undefined的值,而不会抛出错误。

function settings(options = {}) {   const { theme, debug } = options    // Do something with settings }

这样避免因解构不存在的对象而导致的错误。

现在我们已经看到了默认参数如何与不同的数据类型一起工作,下面我们来看看多个默认参数如何协同工作。

使用多个默认参数

首先,声明一个带有多个默认参数的sum()函数

function sum(a = 1, b = 2) {   return a + b }  sum() // 3

此外,参数中使用的值可以在任何后续的默认参数中使用,从左到右。例如,这个createUser函数创建了一个用户对象userObj作为第三个参数,函数本身所做的就是返回userObj和前两个参数

function createUser(name, rank, userObj = { name, rank }) {   return userObj }  // Create user const user = createUser('前端小智', '前端开发')  console.log(user) // {name: "前端小智", rank: "前端开发"}

通常建议将所有默认参数放在参数列表的末尾,以便可以轻松保留可选值。如果首先使用默认参数,则必须显式传递undefined才能使用默认值。

function defaultFirst(a = 1, b) {   return a + b }

当调用这个函数时,必须调用带有两个参数的defaultFirst():

efaultFirst(undefined, 2)  // 3

实战中的事例,下面是一个函数,它的作用是创建一个DOM元素,并添加一个文本标签和类(如果存在的话)。

function createNewElement(tag, text, classNames = []) {   const el = document.createElement(tag)   el.textContent = text    classNames.forEach((className) => {     el.classList.add(className)   })    return el }  const greeting = createNewElement('p', 'Hello!', ['greeting', 'active'])

此时 greeting 的值为

<p class="greeting active">Hello!</p>

如果将classNames数组保留在函数调用之外,则该数组仍将起作用。

const greeting2 = createNewElement('p', 'Hello!')  console.log(greeting2) // p>Hello!</p>

函数调用作为默认参数除了原始类型和对象外,调用函数的结果可以用作默认参数。

在下面代码中,创建一个返回随机数的函数,然后将结果用作多维数据集函数中的默认参数值:

function getRandomNumber() {   return Math.floor(Math.random() * 10) }   function cube(x = getRandomNumber()) {   return x * x * x }

现在每次调用 cube 结果可能都会不一样:

cube()  // 512 cube()  // 64

在以下示例中,将一个随机数分配给x,该随机数用作我们创建函数中的参数。然后,y参数将计算数字的立方根,并检查x和y是否相等:

function doesXEqualY(x = getRandomNumber(), y = Math.cbrt(cube(x))) {   return x === y }  doesXEqualY() // true

默认参数甚至可以是函数定义,如本例所示,它将参数定义为内部函数并返回参数的函数调用:

function outer(   parameter = function inner() {     return 100   } ) {   return parameter() }  // Invoke outer function outer() // 100

在本文中,我们了解了什么是默认函数参数以及如何使用它们。现在,我们可以使用默认参数来帮助保持函数的整洁和易于阅读。还可以预先将空对象和数组分配给参数,以便在处理从对象中检索值或遍历数组等情况时减少复杂性和代码行数。

关于JavaScript 中的默认参数怎么写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: JavaScript 中的默认参数怎么写

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

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

猜你喜欢
  • JavaScript 中的默认参数怎么写
    这篇文章给大家介绍JavaScript 中的默认参数怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在 ES6  中,JS引入了默认函数参数...
    99+
    2024-04-02
  • JavaScript默认参数值如何简写
    这篇文章主要介绍了JavaScript默认参数值如何简写,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。默认参数值为了给函数中参数传递默认值,通常使用if语句来编写,但是使用E...
    99+
    2023-06-27
  • JavaScript怎么给参数指定默认值
    本篇内容介绍了“JavaScript怎么给参数指定默认值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • python中什么是默认参数
    本篇文章给大家分享的是有关python中什么是默认参数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Py...
    99+
    2023-06-14
  • Python中的默认参数详解
    文章的主题 不要使用可变对象作为函数的默认参数例如 list,dict,因为def是一个可执行语句,只有def执行的时候才会计算默认默认参数的值,所以使用默认参数会造成函数执行的时候一直在使用同一个对象,引起bug。 基本原理 在 ...
    99+
    2023-01-31
    详解 参数 Python
  • ES6中函数参数的默认值
    小编给大家分享一下ES6中函数参数的默认值,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!函数参数的默认值形参初始值function add(a, b, c&n...
    99+
    2024-04-02
  • mysql中默认值怎么写
    mysql 中为列设置默认值的方法:创建表时指定 not null default 子句,如:create table users (name varchar(255) not...
    99+
    2024-04-26
    mysql
  • 怎么在python中使用参数默认值
    本篇文章给大家分享的是有关怎么在python中使用参数默认值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python的数据类型有哪些python的数据类型:1. 数字类型,包...
    99+
    2023-06-14
  • 怎么在python中执行参数默认值
    这篇文章将为大家详细讲解有关怎么在python中执行参数默认值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整...
    99+
    2023-06-14
  • python参数怎么传递默认值
    这篇文章主要为大家展示了“python参数怎么传递默认值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python参数怎么传递默认值”这篇文章吧。1、说明函数在定义时可以指定各参数的默认值,基本...
    99+
    2023-06-15
  • python参数默认值怎么使用
    这篇文章主要介绍“python参数默认值怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python参数默认值怎么使用”文章能帮助大家解决问题。说明参数默认值,即为参数设置默认值,然后在调用函...
    99+
    2023-06-30
  • controller中怎么设置接收参数的默认值
    这篇文章主要介绍了controller中怎么设置接收参数的默认值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇controller中怎么设置接收参数的默认值文章都会有所收获,下面我们一起来看看吧。control...
    99+
    2023-06-29
  • 什么是C++默认参数
    本篇内容主要讲解“什么是C++默认参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是C++默认参数”吧!一、C++ 默认参数通常情况下,函数在调用时,形参从实参那里取得值。对于多次调用同一...
    99+
    2023-06-25
  • js中function的参数默认值是什么
    本篇内容介绍了“js中function的参数默认值是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!--...
    99+
    2024-04-02
  • Python中的函数参数(位置参数、默认参数、可变参数)
    目录一、位置参数二、默认参数三、可变参数四、关键字参数五、命名关键字参数六、各种参数之间的组合函数的参数:Python中函数定义非常简单,由于函数参数的存在,使函数变得非常灵活应用广...
    99+
    2024-04-02
  • C++函数参数的默认值怎么指定
    本篇内容介绍了“C++函数参数的默认值怎么指定”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.参数默认值的指定方式在 C++ 中,可以在函...
    99+
    2023-06-30
  • JavaScript ES6默认和休息参数有哪些
    本篇内容介绍了“JavaScript ES6默认和休息参数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • 浅析C/C++中的可变参数与默认参数
    千万要注意,C不支持默认参数 C/C++支持可变参数个数的函数定义,这一点与C/C++语言函数参数调用时入栈顺序有关,首先引用其他网友的一段文字,来描述函数调用,及参数入栈: ---...
    99+
    2022-11-15
    可变参数 默认参数
  • C++ 函数的默认参数和命名参数
    在 c++++ 中,函数参数可设置默认值,简化函数调用和提高代码可读性。此外,c++11 引入了命名参数,允许在函数调用时使用参数名称指定参数值,从而增强代码可读性和灵活性:默认参数:使...
    99+
    2024-04-13
    c++ 函数参数 代码可读性
  • C++函数的默认参数详情
    文章转自微信 公众号:Coder梁(ID:Coder_LT) C++当中的支持默认参数,如果你学过Python,那么想必对此不会陌生。C++中的默认参数的用法和Python基本一致...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作