ES6箭头函数返回undefined而不是所需的值

时间:2017-06-30 17:57:38

标签: javascript optimization ecmascript-6

在没有ES6的JS中运行的简单功能:

var evenOrOdd = function(n){
   if(n % 2 == 1){
      return "Odd";
   } else {
      return "Even";
   }
}

console.log(evenOrOdd(3)); //returns odd

我尝试使用ES6进行重组:

const evenOrOdd = (n) => {(n % 2 == 1) ? "Odd" : "Even"};

console.log(evenOrOdd(3)); //returns undefined

我在这里关注这些示例:2alitystoimen

为什么此箭头功能会返回undefined

2 个答案:

答案 0 :(得分:0)

您必须删除{}



const evenOrOdd = n => (n % 2 === 1 ? "odd" : "even")

console.log(evenOrOdd(3)) //=> "odd"




答案 1 :(得分:0)

(可能对其他人有帮助)

我试图从嵌套函数返回一个值,这是错误的

const isEmailExistsInDb = usrEmail => {
    userModel.countDocuments( {"email": usrEmail}, function (err, count){
        return tempCount > 0;
    });
};

正确的是,必须从父函数返回值

const isEmailExistsInDb = usrEmail => {
    let tempCount;
    mongoModel.countDocuments( {"email": usrEmail}, function (err, count){
        tempCount = count;
    });
    // count > 0 if document exists
    return tempCount > 0;
};