Javascript 为什么java脚本循环没有在代码中的if语句之后运行?

Javascript 为什么java脚本循环没有在代码中的if语句之后运行?,javascript,loops,if-statement,Javascript,Loops,If Statement,我想打印2014年到2050年之间的年份,日期为1,日期为0(周日),月份为0(一月)。这是代码,我哪里做错了 //Write a JavaScript program to find 1st January is being a Sunday between 2014 and 2050. for (var year = 2014; year <=2050; year++){ var today = new Date(); var month = today.getMo

我想打印2014年到2050年之间的年份,日期为1,日期为0(周日),月份为0(一月)。这是代码,我哪里做错了

//Write a JavaScript program to find 1st January is being a Sunday between 2014 and 2050.

for (var year = 2014; year <=2050; year++){
    var today = new Date();
    var month =  today.getMonth();
    var date  =  today.getDate();
    var year1  =  today.getFullYear();
    var day   =  today.getDay();
    // console.log(year);
if (date === 1 && day === 0 && month == 0){
    console.log(year);
}    else{
    alert("error");
}; break

};
//编写一个JavaScript程序,找出2014年至2050年的1月1日是星期日。
对于(风险值年份=2014年;年份这可能会有所帮助

for (var year = 2014; year <= 2050; year++) {
  var d = new Date(year, 0, 1);
  if (d.getDay() === 0){
    console.log(year);
  }
}

for(var year=2014;year您必须在每次迭代后创建一个
新日期(year,0,1)
,然后检查它是否为Sunday

新日期(年,0,1)
  • year
    将输入变量
  • 0
    表示一月份的指数
  • 1
    表示1月1日

    var日期;
    
    对于(var year=2014;year我已经检查了您的代码,下面是对您代码的分析

  • 下面的代码行
    };中断
    在第一次迭代后退出循环,因此这不是必需的
  • 你的代码行
    新日期();
    始终返回今天的日期
  • 因此,你需要像这样称呼它:
    新日期(年,0,1);
    因此,这将为循环中的每一年提供1月1日
  • 因此,您只需使用以下if条件验证这是否为周日:

    let date = new Date(year, 0, 1);
    // checks if 1st Jan for the specific year is === 0 (sunday)
    if ( date.getDay() === 0 ) {
    
    以下是最终工作代码:
    //编写一个JavaScript程序,找出2014年至2050年的1月1日是星期日。
    var年;
    
    for(year=2014;您需要在创建日期时设置日期。new Date()将返回当前日期。你能告诉我代码哪里错了吗?我需要澄清,因为这个答案有否决票。让我知道正确的答案。你的解释文本有否决票,这可能会有所帮助。-不是你的代码。谢谢你的回复,只是想澄清一下,使用新的日期();还有其他方式吗?有什么具体原因,我的答案不符合您的接受标准吗?:)