根据ES6,我们可以提供参数的默认值(这里我为第二个参数提供值0)。现在,如果我提供的值20
& null
在功能上,按照ES6,现在应该将值设为20& 0因此警报必须ping 20
,但警报NaN
。有人可以帮我吗?
function alpha(a, b = '0') {
return (a != null ? '$' + (parseFloat(a) + parseFloat(b)) : "");
}
alert(alpha(20, null)); //output is NaN
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters
答案 0 :(得分: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

答案 1 :(得分:2)
您正在参数null
中传递b
,因此将null分配给b
。要使默认值有效,您应该省略函数中的第二个参数。
function alpha(a, b ='0'){
return (a!=null ? '$' + (parseFloat(a) + parseFloat(b)) : "");
}
alert(alpha(20));