判断出生月份问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | <!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返回后,要有接受它的变量。建议将主要变量改成全局,同时调用函数有接受变量。参考如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <!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 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧