ES6中参数的默认值语法介绍

网友投稿 262 2023-05-19


ES6中参数的默认值语法介绍

前言

在ES6如果函数参数没有值或未定义的,默认函数参数允许将初始值初始化为默认值。下面来看看详细的介绍吧。

语法

function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]])

{

statements

}

描述

在javascript中,函数默认参数定义。然而,在某些情况下,设置不同的默认值可能是有用的。这是默认参数可以帮助的地方。

在过去,设置默认值的一般策略是在函数体中测试参数值,如果它们是未定义的就yZqQgY分配一个值。如果在下面的例子中,在调用过程中b没有提供值,它的值将是undefined 当对 a*b 求值并且调用这个乘法的时候将返回NaN。

function multiply(a, b) {

var b = (typeof b !== 'undefined') ? b : 1;

return a*b;

}

multiply(5); // 5

在ES6中设置默认参数,对函数体的检查是不必须的了。现在,你可以简单的在函数头设置默认值:

function multiply(a, b = 1) {

return a*b;

}

multiply(5); // 5

例子

通过未定义

在第二个函数调用中,即使第二个参数明确地被设置为undefined(虽然不是null),但是这个函数的颜色参数有一个默认值。

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中,一个新的对象是每次调用函数创建。

function append(value, array = []) {

array.push(value);

return array;

}

append(1); //[1]

append(2); //[2], not [1, 2]

甚至适合于函数和变量

function callSomething(thing = something()) { return thing }

function something(){

return "sth";

}

callSomething(); //sth

默认参数可以提供给以后的默认参数

已经遇到的参数可以提供给以后的默认参数:

function singularAutoPlural(singular, plural = singular+"syZqQgY",

rallyingCry = plural + " ATTACK!!!") {

return [singular, plural, rallyingCry ];

}

//["Gecko","Geckos", "Geckos ATTACK!!!"]

singularAutoPlural(yZqQgY"Gecko");

//["Fox","Foxes", "Foxes ATTACK!!!"]

singularAutoPlural("Fox","Foxes");

//["Deer"http://, "Deer", "Deer ... change."]

singularAutoPlural("Deer", "Deer", "Deer peaceably and respectfully

petition the government for positive change.")

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mybatis教程之查询缓存(一级缓存二级缓存和整合ehcache)
下一篇:详解使用zxing库生成QR
相关文章

 发表评论

暂时没有评论,来抢沙发吧~