选择篇(096)-下面代码的输出是什么?

2022-12-05 13:53:14 浏览数 (2)

代码语言:javascript复制
function sum(num1, num2 = num1) {
  console.log(num1   num2)
}

sum(10)

  • A: NaN
  • B: 20
  • C: ReferenceError
  • D: undefined
答案: B

您可以将默认参数的值设置为函数的另一个参数,只要另一个参数定义在其之前即可。我们将值10传递给sum函数。如果sum函数只接收1个参数,则意味着没有传递num2的值,这种情况下,num1的值等于传递的值10num2的默认值是num1的值,即10num1 num2返回20

如果您尝试将默认参数的值设置为后面定义的参数,则可能导致参数的值尚未初始化,从而引发错误。比如:

代码语言:javascript复制
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

0 人点赞