首页 > 解决方案 > 为什么我的 javascript 函数被打印为未定义?

问题描述

我是 JavaScript 新手,目前正在学习函数。每当我尝试将其打印到控制台时,它都会以未定义的形式返回。我确定它非常简单,但我错过了什么?这是我的代码:

let getSleepHours = day => {
  switch (day) {
    case 'monday':
      return 8;
      break;
    case 'tuesday':
      return 7;
      break;
    case 'wednesday':
      return 6;
      break;
    case 'thursday':
      return 9;
      break;
    case 'friday':
      return 10;
      break;
    case 'saturday':
      return 8;
      break;
    case 'sunday':
      return 11;
      break;
    default:
      return 'error';
  }
}
const getActualSleepHours = () => {
  return
  getSleepHours('monday') +
    getSleepHours('tuesday') +
    getSleepHours('wednesday') +
    getSleepHours('thursday') +
    getSleepHours('friday') +
    getSleepHours('saturday') +
    getSleepHours('sunday');
};
console.log(getActualSleepHours());

标签: javascriptfunction

解决方案


由于这一行,它返回 undefined

const getActualSleepHours=()=>{ return

这里 return 关键字后没有返回任何内容,因此 Javascript 将认为其未定义。

你应该做这个:

const getActualSleepHours =() =>{ 
  return getSleepHours('monday')+
  getSleepHours('tuesday')+
  getSleepHours('wednesday')+
  getSleepHours('thursday')+
  getSleepHours('friday')+
  getSleepHours('saturday')+
  getSleepHours('sunday');

};

完整片段:

let getSleepHours = day => {
  switch (day) {
    case 'monday':
      return 8;
      break;
    case 'tuesday':
      return 7;
      break;
    case 'wednesday':
      return 6;
      break;
    case 'thursday':
      return 9;
      break;
    case 'friday':
      return 10;
      break;
    case 'saturday':
      return 8;
      break;
    case 'sunday':
      return 11;
      break;
    default:
      return 'error';
  }
}
const getActualSleepHours =() =>{ 
  return getSleepHours('monday')+
  getSleepHours('tuesday')+
  getSleepHours('wednesday')+
  getSleepHours('thursday')+
  getSleepHours('friday')+
  getSleepHours('saturday')+
  getSleepHours('sunday');

};
console.log(getActualSleepHours());


推荐阅读