终端运行功能时无输出

时间:2019-02-05 22:39:42

标签: javascript date ecmascript-6

请给我的代码一些帮助。当我在终端上运行它时,没有输出。我正在尝试打印要传递给函数的dateString的日期。例如,如果我输入今天的日期为02/05/2019,则应打印星期二。

我尝试在单独的行上调用该函数,然后使用console.log进行打印,这也许行得通,但没有成功。

var dateString = ('10/16/2012');
const getDayName = (date) =>   {
  var days =  new Date(dateString);
  const weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saurday'];
  return weekDays[days.getDay()];
};

console.log(getDayName);

2 个答案:

答案 0 :(得分:2)

您的代码中存在多个错误/不一致。

  • 您正在记录函数本身,而不是调用它。
  • 您无需在函数中使用date参数,而是直接访问全局变量。

这是更正的版本:

const getDayName = dateString => {
  const date = new Date(dateString);
  const weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saurday'];
  return weekDays[date.getDay()];
};

console.log(getDayName('10/16/2012'));

答案 1 :(得分:0)

该功能可以简化为:

function getDayName(s) {
  return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][new Date(s).getDay()];
}

console.log(getDayName('10/16/2012'));

或者如果您真的必须使用函数表达式:

let getDayName = s => ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][new Date(s).getDay()];

console.log(getDayName('10/16/2012'));

使用更少的代码并支持主机默认语言:

let getDayName = s => new Date(s).toLocaleString(void 0, {weekday:'long'});

console.log(getDayName('10/16/2012'));