箭头功能不起作用,但按旧方法使用功能

时间:2019-04-10 12:35:29

标签: javascript arrow-functions

我正在尝试变酷和现代,并使用箭头功能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);
}

1 个答案:

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