JavaScript函数默认参数无法正常工作

Dea*_*ool 0 html javascript function ecmascript-6

根据ES6,我们可以提供参数的默认值(这里我为第二个参数提供值0).现在,如果我按照ES6 提供20&nullin函数的值,它应该将现在的值取为20和0,因此警报必须ping 20,但它是警报NaN.有人可以帮我吗?

function alpha(a, b = '0') {
  return (a != null ? '$' + (parseFloat(a) + parseFloat(b)) : "");
}

alert(alpha(20, null)); //output is NaN
Run Code Online (Sandbox Code Playgroud)

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters

T.J*_*der 8

现在,如果我在函数中提供20&null的值,根据ES6,它应该采用现在的值为20和0

不.:-) null不会被默认值替换.默认值替换的唯一值是undefined(无论您是明确地给它,还是只留下该参数).

所以:

function alpha(a, b = '0') {
  return (a != null ? '$' + (parseFloat(a) + parseFloat(b)) : "");
}

console.log(alpha(20));            // Gets default
console.log(alpha(20, undefined)); // Gets default
console.log(alpha(20, null));      // Does not get default
Run Code Online (Sandbox Code Playgroud)