Javascript If,Else If,Else-不输出;否则";代码

Javascript If,Else If,Else-不输出;否则";代码,javascript,if-statement,Javascript,If Statement,在运行代码时,前两个选项有效:“生日快乐”和“今年你将变老”最后一个选项无效 我已经尝试了几种不同的代码组合,对于底部的代码else来说没有任何变化 函数getAge(){ var today=新日期(); var nowYear=today.getFullYear(); var nowMonth=today.getMonth(); var nowDay=today.getDate(); //提示用户输入出生年份 var birth=prompt(“您是什么时候出生的?”,“YYYY-MM-D

在运行代码时,前两个选项有效:“生日快乐”和“今年你将变老”最后一个选项无效

我已经尝试了几种不同的代码组合,对于底部的代码
else
来说没有任何变化

函数getAge(){
var today=新日期();
var nowYear=today.getFullYear();
var nowMonth=today.getMonth();
var nowDay=today.getDate();
//提示用户输入出生年份
var birth=prompt(“您是什么时候出生的?”,“YYYY-MM-DD”);
//计算出生月份是否超过现在的未来
var出生=新
日期(parseInt(birth.substring(0,4)),parseInt(birth.substring(5,7))-1,parseInt(birth.substring(8,10));
var birthYear=birth.getFullYear();
var birthMonth=birth.getMonth();
var birth=birth.getDate();
//创建用户字符串将出生年份和出生月份与当前日期进行比较
var compBirth=birthMonth.toString()+birth.toString();
var compToday=nowMonth.toString()+nowDay.toString();
//写评估
如果(compBirth==compToday){
写下(‘今天是你的生日!生日快乐!’);
}否则如果(compBirth我修复了你的代码

  • 更改计算
    compBirth
    compToday
    以比较其as编号
  • 将条件
    compBirth
    更改为
    compBirth>compToday
    (似乎更符合逻辑)
函数getAge(){
var today=新日期();
var nowYear=today.getFullYear();
var nowMonth=today.getMonth();
var nowDay=today.getDate();
//提示用户输入出生年份
var birth=prompt(“您是什么时候出生的?”,“YYYY-MM-DD”);
//计算出生月份是否超过现在的未来
var birth=新日期(parseInt(birth.substring(0,4)),parseInt(birth.substring(5,7))-1,parseInt(birth.substring(8,10));
var birthYear=birth.getFullYear();
var birthMonth=birth.getMonth();
var birth=birth.getDate();
//创建用户字符串将出生年份和出生月份与当前日期进行比较
var compBirth=出生月份*100+生日;
var compToday=nowMonth*100+nowDay;
//写评估
如果(compBirth==compToday){
写下(‘今天是你的生日!生日快乐!’);
}否则如果(compBirth>compToday){
写下('你将变成'+“ ”+(现在是年份-出生年份
+“+‘今年晚些时候岁’);
}
否则{
document.write('youhaveturned'+“ ”+(nowYear-birthYear+
“+‘今年已经岁了’);
}
}
getAge()我修复了你的代码

  • 更改计算
    compBirth
    compToday
    以比较其as编号
  • 将条件
    compBirth
    更改为
    compBirth>compToday
    (似乎更符合逻辑)
函数getAge(){
var today=新日期();
var nowYear=today.getFullYear();
var nowMonth=today.getMonth();
var nowDay=today.getDate();
//提示用户输入出生年份
var birth=prompt(“您是什么时候出生的?”,“YYYY-MM-DD”);
//计算出生月份是否超过现在的未来
var birth=新日期(parseInt(birth.substring(0,4)),parseInt(birth.substring(5,7))-1,parseInt(birth.substring(8,10));
var birthYear=birth.getFullYear();
var birthMonth=birth.getMonth();
var birth=birth.getDate();
//创建用户字符串将出生年份和出生月份与当前日期进行比较
var compBirth=出生月份*100+生日;
var compToday=nowMonth*100+nowDay;
//写评估
如果(compBirth==compToday){
写下(‘今天是你的生日!生日快乐!’);
}否则如果(compBirth>compToday){
写下('你将变成'+“ ”+(现在是年份-出生年份
+“+‘今年晚些时候岁’);
}
否则{
document.write('youhaveturned'+“ ”+(nowYear-birthYear+
“+‘今年已经岁了’);
}
}

getAge()如果输入为空并单击“确定”,则代码工作正常。它不工作,只有当您点击取消,因为取消返回空。为此,您可以再添加一个条件,如下所示:

var birth = prompt("OK?");
else if (result === null) {
    return;
}

如果输入为空并单击“确定”,则代码工作正常。它不工作,只有当您点击取消,因为取消返回空。为此,您可以再添加一个条件,如下所示:

var birth = prompt("OK?");
else if (result === null) {
    return;
}

我会用一个delemiter将月和日分开,否则
111
可能是1月11日或11月1日,请看一看。您不需要逐部分或以字符串形式比较日期。请遵循@jonaswillms建议并添加尾随零,使其始终为4位数字。关键是要使
/
处于相同的位置,这样就不会影响比较,因为它是按字母顺序而不是数字顺序进行的。@maclain不,尾随的零不会改变任何东西。根据这段代码,最后一个else语句似乎有效,但else if语句无效。。。。我认为比较符号是错误的小于,>大于。您应该使用大于比较器。我会用一个delimiter分隔月份和日期,否则
111
可能是1月11日或11月1日。请看。您不需要逐部分或以字符串形式比较日期。请遵循@jonaswillms建议并添加尾随零,使其始终为4位数字。关键是要使
/
处于相同的位置,这样就不会影响比较,因为它是按字母顺序而不是数字顺序进行的。@maclain不,尾随的零不会改变任何东西。根据这段代码,最后一个else语句似乎有效,但else if语句无效。。。。我要做的比较符号