在前端开发中,JavaScript 经常被用作重要的开发语言之一。为了使代码更加易读、易维护,语言的开发者提供了一些有用的功能。其中之一是 ECMAScript 2016 中的默认函数参数。
默认参数允许您为函数参数设置默认值。在此之前,使用默认值的最常见方法可能是在函数中使用 if/else 语句。但这种方式往往会使代码显得复杂,尤其是当有多个参数需要提供默认值时。默认参数的引入可以使您的代码变得更加干净和简洁。
什么是 ECMAScript 2016 的默认参数?
默认参数允许您为函数参数设置默认值。如果未传递参数,则将使用默认值。这对于在函数中使用可选参数或不定长度参数列表特别有用。
默认参数使用一个指定值作为函数的参数,如果没有传递参数,则会使用该指定值。因此,我们可以在定义函数时将默认值分配给参数。
ECMAScript 2016 的默认参数使用简单。在定义函数时,您可以指定默认参数的值。例如,假设您需要编写一个函数来计算任意数量的数字的总和。实现此操作的函数可能如下所示:
function sumNumbers(numbers = []) { let sum = 0; for (let i = 0; i < numbers.length; i++) { sum += numbers[i]; } return sum; }
注意看函数定义时,参数写为 numbers = []
,square brackets(中括号)表示我们正在为 numbers 参数指定一个空数组作为默认值。这意味着如果没有传递任何参数,函数将始终返回 0。
现在,让我们测试一下:
console.log(sumNumbers()); // returns 0 console.log(sumNumbers([1, 2, 3])); // returns 6
我们首次调用 sumNumbers()
函数并传递空参数。因为没有传递参数,所以 numbers
参数使用其默认值 []. 从而输出 0。在第二个测试用例中,我们通过将参数数组传递给函数来计算数组中数字的总和。
指定默认值
默认参数使用一个指定值作为函数的参数。您可以根据要求设置不同类型的参数默认值,如:
function displayMessage(message = "I love coding") { console.log(message); } displayMessage(); // outputs "I love coding" displayMessage("Hello!"); // outputs "Hello!"
如果没有提供 displayMessage()
中的参数,它将默认输出 "I love coding" 信息。另一方面,如果传递了参数,则将输出传递的参数。
默认值可以是数字、字符串、最近的可用变量等等。
function getRandomNumber(max = 10) { console.log(Math.floor(Math.random() * Math.floor(max))); } getRandomNumber(); // outputs a random number between 0 and 9 getRandomNumber(100); // outputs a random number between 0 and 99 as per 100 passed as the parameter
在此示例中,如果未传递参数,则 getRandomNumber()
使用 max = 10 的默认参数。如果传递参数,则将使用传递的值代替默认值。
注意与解构参数一起使用带默认值的情况
默认参数和解构参数在 ECMAScript 2016 中同时引入。使用解构参数和默认参数时,需要格外注意几点:
function testFunction({name = 'Jacob', age = 20} = {}) { console.log(name, age); }
这里使用了两个默认参数:name
和 age
。如果未传递任何参数,则将使用第二个默认参数。
总结
ECMAScript 2016 的默认参数允许您为函数参数设置默认值,从而使您的代码变得更加干净和简洁。有关如何使用默认参数的详细信息,以及如何编写使用默认参数的函数的示例代码,请参见本文。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b3a8c348841e9894feaf4c