ES6 里面的函数默认参数详解

ES6 里面的函数默认参数详解

在 ES6 中,我们允许为函数的参数设置默认值,从而使得函数调用者在某些情况下可以省略掉某些参数的值。本篇文章将详细讲解 ES6 中函数默认参数的相关知识点,并提供一些实例代码来帮助大家更好地理解。

函数默认参数的基本语法

在 ES6 中,我们可以使用如下语法来为函数参数设置默认值:

在上述代码中,我们使用了 = 运算符来为参数 param1param2 设置了默认值 defaultVal1defaultVal2。当函数调用者没有给这些参数传递值时,函数将会默认使用这些值。

示例代码:

在上述代码中,我们定义了一个名为 greet 的函数,它接受两个参数:name 表示要打招呼的人的名字,greeting 表示打招呼的话语。当函数调用者没有传递 greeting 参数的值时,默认为 'Hi'。这意味着我们可以在调用 greet 函数时省略掉 greeting 参数。

函数默认参数对于 undefined 的判断

当函数的参数值被传递进来时,我们需要注意的是参数值为 undefined 和参数值没有被传递进来这两种情况是不同的。

示例代码:

在上述代码中,我们定义了一个名为 func 的函数,并为其设置了一个默认参数 param,默认值为 'default'。在函数调用时,我们可以看到传递不同的参数值会引起不同的输出。特别是,当我们向 func 函数传递 undefined 进行调用时,将输出默认值。

函数默认参数按值传递

与 JavaScript 中的其他函数参数类似,函数默认参数也是按值传递的。这意味着如果我们将一个对象作为函数的默认参数值传递进去,那么函数内部使用的对象值与函数外部的对象是不同的。

示例代码:

在上述代码中,我们定义了一个名为 func 的函数,并为其设置了一个默认参数 param,默认值为一个空对象。在函数内部,我们将 param 对象的 x 属性值修改为了 1。当我们第一次调用 func 函数时,输出的是 {x: 1}。当我们第二次调用 func 函数时,输出的仍然是 {x: 1}。这是因为函数内部使用的对象值与函数外部的对象是不同的。最后,我们在第三次调用 func 函数时传递了一个自定义的对象 myObj 进去,输出的是 {x: 1}。然而,我们注意到函数外部的对象仍然是一个空对象。这表明在函数内部修改对象的属性值不会影响到函数外部对象的值。

总结

在 ES6 中,我们可以使用函数默认参数的语法来使函数的调用更加灵活。默认值是参数没有被传入时使用的值。通过本篇文章,我们学会了如何设置函数的默认参数,了解了函数默认参数的在 undefined 和对象参数值的场景下的表现形式,并知道函数默认参数是按值传递的。我们希望这篇文章可以帮助大家更好地理解 ES6 中函数默认参数的相关知识点,以便进一步加深对 JavaScript 语言的掌握程度。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6534e5877d4982a6eba646c8


纠错
反馈