1

设计和编写一个程序,提示用户他们的出生年份,计算用户的年龄并显示用户的年龄。如果用户的年龄超过 40 岁,则将网页的背景颜色设置为红色。该解决方案必须使用 JavaScript Date 对象并使用程序员创建的函数来计算用户的年龄。

非常小的问题,如果年龄超过 40 岁,我只需要让屏幕变红我似乎无法做到这一点......

    <html>
<head>
<title> Age of person </title>
<div id="age"></div>
<body>
<script>
function determine_age_of_person ( year )
{
var today = new Date();
var now_year = today.getFullYear();
var age = now_year - year_person_was_born;
return age;
}


var year_person_was_born;
//unsure about below statement the '==' part
var age_of_person==age;

do
{
year_person_was_born = prompt("Enter year you were born", "");
year_person_was_born = parseInt (year_person_was_born1 );
}

while (is(year_person_was_born));

age_of_person = determine_age_of_person ( year_person_was_born );

if (age_of_person>40)
document.body.style.backgroundColor = "red";

else
document.body.style.backgroundColor = "white";

document.getElementById("age").innerHTML = "You are " + age_of_person + " years old";


</script>
</body>
</html>
4

2 回答 2

3

好的,这里有很多代码放置问题(您在元素之外有一个 html 元素body,在函数之外有返回语句,您不使用的函数参数)。这是您正在构建的简化版本(演示

<html>
  <head>
   <title> Age of person </title>
  </head>
  <body>
    <div id="age"></div>
    <script>
      function determine_age_of_person (year) {
        return (new Date()).getFullYear() - year;
      }

      var age_of_person = determine_age_of_person(parseInt (prompt("Enter year you were born", ""), 10));

      if (age_of_person>40) {
        document.body.style.backgroundColor = "red";
      } else {
        document.body.style.backgroundColor = "white";
      }
    document.getElementById("age").innerHTML = "You are " + age_of_person + " years old";
    </script>
  </body>
</html>

以下是我所做更改的细分:

  • 搬进<div id="age"></div>了里面body
  • 使用参数year代替determine_age_of_person()全局变量
  • 合并成一行promptparseIntdetermine_age_of_person在 parseInt 中添加了一个基数,因为 JavaScript 有与非基数 10 数字相关的奇怪规则,这是一个很好的习惯)
  • 添加花括号到if statement
  • 删除了无用的代码,例如do()while()
于 2013-05-01T22:23:36.923 回答
2

改变

if (year_person_was_born > 40)

if (age_of_person > 40)
于 2013-05-01T22:06:40.790 回答