gpt4 book ai didi

javascript - 默认参数值的顺序重要的 es6?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:12:22 24 4
gpt4 key购买 nike

我希望澄清一些事情。

ES6 为我们带来了扩展的参数处理,使我们能够传递默认参数值。

function f (x, y = 7, z = 42) {
return x + y + z
}

f(1) === 50

这很好用。但是,如果我交换参数,使它们看起来像这样 (x = 7, y, z = 42),它会返回 NaN

function f (x = 7, y, z = 42) {
return x + y + z
}

f(1) === 50

谁能解释为什么会这样?

最佳答案

将值传递给函数时,顺序很重要。在第一种情况下,您只将一个变量传递给函数。该值将分配给变量 x。由于您只传递一个变量,因此其他参数的其余值假定为空。但是,由于您已经为这些参数分配了默认值,该函数将尝试计算 1 + 7 + 52,结果为 50。

在第二种情况下,您传递 1 作为变量 x 的值。由于参数 y 未分配,因此该函数将评估 1 + undefined + 42,这是一个 NaN 类型。

关于javascript - 默认参数值的顺序重要的 es6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43469062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com