提示年龄会带来意外结果

时间:2018-11-07 17:17:57

标签: javascript conditional

我目前正在开始学习JavaScript。但是,有人可以告诉我下面的程序出了什么问题,为什么只有18岁才能被接受?当年龄是<18或> 18岁时,当我从控制台运行以下代码时,在chrome控制台上会得到不确定的结果:

var age = prompt("What is your age?");
if (Number(age) < 18) {
  alert("Sorry, you are too young to drive this car. Powering off");
} else if (Number(age) > 18) {
  alert("Powering On. Enjoy the ride!");
} else if (Number(age) === 18) {
  alert("Congratulations on your first year of driving. Enjoy the ride!");
}

2 个答案:

答案 0 :(得分:0)

浏览器中的控制台环境旨在获取程序中的最后一个语句表达式,并对其求值,然后向您显示该值。如果该语句不返回任何内容,则会得到未定义。

例如,如果您在控制台中键入var x = 2,则将得到未定义的内容,但是如果您键入x = 2,则将得到2。

答案 1 :(得分:-1)

如果已经是一个数字,通常不需要使用Number()将其转换为数字。

而且,如果它是一个普通整数,则没有理由相信Number()应该将其转换为除数字之外的任何数字。

我可以想象的唯一可能的问题是,当您运行代码段时,“ age”不是期望值。