javascript - 为什么“数字”使“否则如果”在这里工作?
问题描述
我有一个任务要玩一下 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!");
}
解决方案
您需要将字符串转换为数字。最简单的方法是取一元加号+
。
使用数字,您可以使用严格比较身份/严格相等运算符===
与数字进行检查,因为您至少具有相同的类型。
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!");
}
推荐阅读
- angular - 如何使用打字稿编辑 AG-GRID 中的日期字段?
- android - NPE while 使用 io.reactivex.Observable 过滤列表
- python - 使用 python 的 Lambda@edge 函数
- bitbucket - Bitbucket REST Api:如何通过调用 rest api 按日期 desc 对所有分支进行排序?
- typescript - 为什么我无法解构可选参数,即使提供了有效的默认值?
- django - Django 2.0 - 让测试工作者在非应用文件夹中运行测试
- javascript - 为复杂表构建排序器和过滤器
- java - 在新线程中打印的 Java 问题
- android - 为了解决“google-services.json 丢失”问题,我应该在 Flutter 应用程序中的什么位置放置 Googleservices.json
- rust - 如何通过宏将字符串转换为原始字符串?