Skip to content

输出什么?

Posted on:2021年7月3日 at 22:26
function sum(num1, num2 = num1) {
  console.log(num1 + num2);
}

sum(10);

您可以将默认参数的值设置为函数的另一个参数,只要另一个参数定义在其之前即可。 我们将值10传递给sum函数。 如果sum函数只接收1个参数,则意味着没有传递num2的值,这种情况下,num1的值等于传递的值10num2的默认值是num1的值,即10num1 + num2返回20。 如果您尝试将默认参数的值设置为后面定义的参数,则可能导致参数的值尚未初始化,从而引发错误。比如:

function test(m = n, n = 2) {
  console.log(m, n);
}
test(); // Uncaught ReferenceError: Cannot access 'n' before initialization
test(3); // 3 2
test(3, 4); // 3 4
原文转自:https://fe.ecool.fun/topic/8bfd0ee4-896b-4e7e-bf7f-234a54344dd7