js相关:ES6中参数的默认值语法介绍

发布于 2020-11-18|标签javascript
复制链接
这ES6允许为函数参数设置默认值,即直接写在参数定义后面。下面篇文章主要介绍了ES6中参数默认值语法的相关资料,对大家具有一定的参考价值,需要的朋友下面来一起看看吧。
前言在ES6如果函数参数没有值或未定义的,默认函数参数允许将初始值初始化为默认值。下面来看看详细的介绍吧。语法 ```javascript function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]]) { statements } ``` 描述 在JavaScript中,函数默认参数定义。然而,在某些情况下,设置不同的默认值可能是有用的。这是默认参数可以帮助的地方。在过去,设置默认值的一般策略是在函数体中测试参数值,如果它们是未定义的就分配一个值。如果在下面的例子中,在调用过程中b没有提供值,它的值将是undefined 当对 a*b 求值并且调用这个乘法的时候将返回NaN。 ```javascript function multiply(a, b) { var b = (typeof b !== 'undefined') ? b : 1; return a*b; } multiply(5); // 5 ``` 在ES6中设置默认参数,对函数体的检查是不必须的了。现在,你可以简单的在函数头设置默认值: ```javascript function multiply(a, b = 1) { return a*b; } multiply(5); // 5 ``` 例子 通过未定义在第二个函数调用中,即使第二个参数明确地被设置为undefined(虽然不是null),但是这个函数的颜色参数有一个默认值。 ```javascript function setBackgroundColor(element, color = 'rosybrown') { element.style.backgroundColor = color; } setBackgroundColor(someDiv); // color set to 'rosybrown' setBackgroundColor(someDiv, undefined); // color set to 'rosybrown' too setBackgroundColor(someDiv, 'blue'); // color set to 'blue' ``` 调用时求值默认参数在调用时计算的,所以不像在Python中,一个新的对象是每次调用函数创建。 ```javascript function append(value, array = []) { array.push(value); return array; } append(1); //[1] append(2); //[2], not [1, 2] ``` 甚至适合于函数和变量 ```javascript function callSomething(thing = something()) { return thing } function something(){ return "sth"; } callSomething(); //sth ``` 默认参数可以提供给以后的默认参数已经遇到的参数可以提供给以后的默认参数: ```javascript function singularAutoPlural(singular, plural = singular+"s", rallyingCry = plural + " ATTACK!!!") { return [singular, plural, rallyingCry ]; } //["Gecko","Geckos", "Geckos ATTACK!!!"] singularAutoPlural("Gecko"); //["Fox","Foxes", "Foxes ATTACK!!!"] singularAutoPlural("Fox","Foxes"); //["Deer", "Deer", "Deer ... change."] singularAutoPlural("Deer", "Deer", "Deer peaceably and respectfully petition the government for positive change.") ```
冀ICP备17029012号-4 | 版权所有©鲍亚龙 |免责声明  | GIF图库  | NUXT版