【问题标题】:No output when running function in terminal在终端中运行函数时没有输出
【发布时间】:2019-02-05 22:39:42
【问题描述】:

希望对我的代码有所帮助。当我在终端上运行它时,没有输出。我正在尝试打印要传递给函数的 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);

【问题讨论】:

  • 你只需要调用函数:console.log( getDayName() ).

标签: javascript date ecmascript-6


【解决方案1】:

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

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

这是一个更正的版本:

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'));

【讨论】:

    【解决方案2】:

    函数可以简化为:

    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'));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2016-05-23
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多