let add = (a = 0,b = 0) => {
return a+b;
};
console.log(add(5,2));
我的期望是:0
,结果是:7
如果我通过a = 5
和b = 2
然后在添加的函数中,a
和b
已经分配了0,那么它应该返回0
。为什么7
?
答案 0 :(得分:0)
如果通过调用提供,则会覆盖默认参数。否则它们将毫无用处,因为你永远无法改变它们。
答案 1 :(得分:0)
这是默认值的重点:如果在调用函数时没有提供值,则使用默认值,否则使用函数调用中传递的值。
let add = (a = 2, b = 1) => {
return a + b;
};
console.log(add(5, 2)); // no default will be used
console.log(add(5)); // only second default will be used
console.log(add(undefined, 4)); // only first default will be used
答案 2 :(得分:0)
在任何语言中,仅在未指定其他值时使用默认值。 因此,每当您为变量分配任何值时,它都会更改值。
与您的概念相同
let add = (a = 0,b = 0) => {
return a+b;
};
console.log(add(5,2)); // it will return 7
console.log(add()); // it will return 0
答案 3 :(得分:0)
let add = (a = 0,b = 0) => {
return a+b;
};
SO your function will be evaluated something like this
let add = (a, b) => {
a = (typeof(a) !== undefined) ? a : 0;
b = (typeof(b) !== undefined) ? b : 0;
return a + b; //your function code start from here.
}
因此,如果您通过add(5, 2)
,则条件(typeof(a) !== undefined)
将为真,5将分配给a
,b
则相同,但如果您通过add(5)
然后,a
的条件变为ttrue,a
被指定为5,但b
的条件为false,因此b
将被指定为0
。