首页 > 解决方案 > 为什么“数字”使“否则如果”在这里工作?

问题描述

我有一个任务要玩一下 if/else if。我不明白为什么,当我像下面的示例那样编写代码时,“else if(age === 18)”部分不起作用。它显示为“未定义”。其他 2 个工作。但是,当我在所有这些中添加 (Number(age) 时,它会起作用。为什么会这样?为什么我可以使用没有“Number”的 2/3,但我需要它来使用 3/3?

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

标签: javascriptmultiple-conditions

解决方案


您需要将字符串转换为数字。最简单的方法是取一元加号+

使用数字,您可以使用严格比较身份/严格相等运算符===与数字进行检查,因为您至少具有相同的类型。

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


推荐阅读