一位JavaScript开发人员向我们展示了一些这种语言的发展,侧重于默认参数,以及web开发人员如何使用他们的JS功能。
JavaScript函数可以有默认的参数值。使用默认函数参数,可以使用默认值初始化形式参数。如果你没有用某个值初始化一个参数,那么这个参数的默认值是undefined。
让我们考虑下面列出的代码:
function foo(num1){ console.log(num1);}foo();在调用函数foo的时候,你没有传入任何参数,所以变量num1的默认值被设置为undefined。但是,有时您可能需要设置除undefined以外的默认值。过去,最好的策略是测试未定义的参数值,然后分配一个值。所以,让我们说在上面的例子中,你想要将num1的默认值设置为9。你可以做到这一点,如下面列出的代码所示:
function foo(num1) { if (num1 === undefined) { num1 = 9; } console.log(num1);}foo();ECMAScript 6引入了该函数的默认参数。使用ECMA 2015的默认参数功能,您不再需要检查未定义的参数值。现在,你可以把9作为参数本身的默认值。您可以重写上面的函数来使用默认值,如下所示:
function foo(num1 =9) { console.log(num1);}foo();对于函数foo,如果num1参数的值没有被传递,那么JavaScript将设置9作为num1的默认值。
检查未定义的参数即使您在调用函数时显式传递undefined作为参数值,参数值也会被设置为默认值。
function foo(num1 =9) { console.log(num1);}foo(undefined);在上面的代码中,你传递了undefined作为num1的值; 因此,num1的值将被设置为默认值9。
默认值在运行时评估JavaScript函数默认值在运行时被评估。要更好地理解这一点,请考虑以下代码:
function foo(value = koo()) { return value;}function koo() { return "Ignite UI";}var a = foo();console.log(a);在函数foo中,参数值的缺省值被设置为函数koo。当你在运行时调用函数foo时,函数koo将被评估。在调用foo函数时,您将获得如下图所示的输出(在本例中,我们正在使用Ignite UI框架)。
重用默认参数默认参数可供稍后的默认参数使用。让我们考虑下面列出的代码:
function foo(num1 = 9, num2 = num1 + 8){ console.log(num2);}foo();在上面的代码中,使用默认值num1来计算num2的默认值。调用函数foo时,您将获得以下输出:
结论JavaScript默认参数在编写函数时非常有用。当调用该函数时,如果缺少一个参数,默认参数功能允许您为函数参数指定一个默认值,而不是将其保留为未定义。