判断出生月份问题
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> //声明年函数 function year(){ while(true){ var year=prompt("请输入您的出生年份"); if(isNaN(year)){ alert("请输入数字"); }else{ if (year.length!=4){ alert("请输入4位数字"); }else{ return parseInt(year); } } } } year(); //声明月份 function month(){ while(true){ var month=prompt("请输入您的出生月份"); if (isNaN(month)){ alert("请输入数字"); }else{ if(month<1 || month>12){ alert("请输入1-12以内的数字") }else{ return parseInt(month); } } } } month(); //声明日 function date(){ while(true){ var date=prompt("请输入您的出生日") if(isNaN(date)){ alert("请输入数字"); }else{ if(date<1 || date >31){ alert("请输入1—30以内的数字") }else{ return parseInt(date); } } } } date(); //判断闰年 function runNian(){ var runNian=(year%4==0 && year%100!=0) || year%400==0; } runNian(); //判断闰年,计算输入月份之前的天数 function months(){ var sum=0; for(var i=0;i<month-1; i++) {sum+=arguments[i];} if(runNian && month>2){ sum+=date+1; }else{ sum+=date; } return sum; } months(31,28,31,30,31,30,31,31,30,31,30,31); document.write("您的生日是在"+parseInt(year)+"年是第"+sum+"天"); </script> </body> </html>
我已经return sum为何还不能识别sum??
51
收起
正在回答
1回答
你好,主要问题是,在 函数内定义的变量是局部变量,同时 return返回后,要有接受它的变量。建议将主要变量改成全局,同时调用函数有接受变量。参考如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> var year,month,date,sum,runNian; //声明年函数 function year() { while (true) { year = prompt("请输入您的出生年份"); if (isNaN(year)) { alert("请输入数字"); } else { if (year.length != 4) { alert("请输入4位数字"); } else { return parseInt(year); } } } } year=year(); //声明月份 function month() { while (true) { month = prompt("请输入您的出生月份"); if (isNaN(month)) { alert("请输入数字"); } else { if (month < 1 || month > 12) { alert("请输入1-12以内的数字") } else { return parseInt(month); } } } } month=month(); //声明日 function date() { while (true) { var date = prompt("请输入您的出生日") if (isNaN(date)) { alert("请输入数字"); } else { if (date < 1 || date > 31) { alert("请输入1—30以内的数字") } else { return parseInt(date); } } } } date=date(); //判断闰年 function runNian() { runNian = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; } runNian(); //判断闰年,计算输入月份之前的天数 function months() { sum = 0; for (var i = 0; i < month - 1; i++) { sum += arguments[i]; } if (runNian && month > 2) { sum += date + 1; } else { sum += date; } return sum; } sum=months(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); document.write("您的生日是在" + parseInt(year) + "年是第" + sum + "天"); </script> </body> </html>
希望对你有帮助,祝学习愉快,欢迎采纳。
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星