箭头功能不工作但使用功能旧方式工作[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我试图变得冷静和现代,并使用箭头功能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);
}
javascript arrow-functions
1个回答
1
投票

在声明箭头功能后带上console.log()

注意:您没有使用任何关键字声明函数。您应该使用let varconst来声明该功能。

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中的函数声明被提升到封闭函数或全局范围的顶部。您可以在声明之前使用该功能

© www.soinside.com 2019 - 2024. All rights reserved.