这个问题在这里已有答案:
我试图变得冷静和现代,并使用箭头功能es6 js但在第一次尝试失败。
为什么这个箭头函数sumRange不起作用:
var output = sumRange(3);
console.log(output);
sumRange = (num) => {
if(num == 1) return 1;
console.log(num);
return num + sumRange(num - 1);
}
但这里的功能是做的:
var output = sumRange(3);
console.log(output);
function sumRange(num){
if(num == 1) return 1;
console.log(num)
return num + sumRange(num - 1);
}
在声明箭头功能后带上console.log()
。
注意:您没有使用任何关键字声明函数。您应该使用let
var
或const
来声明该功能。
let sumRange = (num) => {
if(num == 1) return 1;
console.log(num);
return num + sumRange(num - 1);
}
var output = sumRange(3);
console.log(output);
为什么第二个有效?
因为那是function statement。它甚至可以在声明之前使用。
JavaScript中的函数声明被提升到封闭函数或全局范围的顶部。您可以在声明之前使用该功能