为什么我们需要添加' return'到第4行的三元运营商?
当我评估一个独立的三元运算符,如incrementCounter
时,我得到的返回值为1.所以我的理解是该表达式返回了一个值。所以'返回'在第4行似乎没有必要,尽管代码运行肯定需要它。
'five' === 'five' ? 1 : 0
答案 0 :(得分:1)
与devtools控制台上的输入不同,JavaScript function
不返回要评估的最后一个语句的结果值。您需要一个显式的return
关键字来终止该函数并将结果返回给调用者。如果函数体评估在没有return
的情况下结束,则隐式返回值undefined
。
答案 1 :(得分:0)
与之前的答案一样,您需要显式返回结果,否则函数的结果将为undefined
。这可以通过使用return
关键字来完成,但是由于javascript ES6,使用箭头函数表达式时不再需要return
关键字。
以下功能:
const fn = function(x, y) {
return x+y;
}
可以通过以下方式在ES6中编写(不需要return
关键字):
const fn = (x, y) => x+y;
考虑到这一点(以及一些函数式编程原则),我们可以通过以下方式重写函数countOccurrence
:
const countOccurrence = array => value => array.filter(y => y == value).length;
const array = [2,3,2,4,2];
const valueToCheck = 2;
console.log(countOccurrence(array)(valueToCheck)); // => 3