【问题标题】:Prompt for age delivers unexpected result提示年龄会带来意想不到的结果
【发布时间】:2019-04-11 04:24:14
【问题描述】:

我目前开始学习 JavaScript。但是,有人能告诉我下面的程序有什么问题吗?为什么只接受 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!");
}

【问题讨论】:

  • “当年龄 18 岁时,我在 chrome 控制台上得到未定义的结果”是什么意思?它不打印错误消息吗?而且您使用的是警报,而不是console.log。它不会将结果放在控制台中。它会弹出一个警报。
  • 它工作正常 :) 什么不适合你?
  • 代码完美运行。不知道你的意思
  • 别担心....只是一个console 响应...例如,如果您打开控制台并输入var test = 13 并按回车,它会打印undefined。 ..您可以查看此问答了解更多详情:stackoverflow.com/questions/14633968/…

标签: javascript conditional


【解决方案1】:

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

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

我能想象的唯一可能的问题是,当您运行代码 sn-p 时,“年龄”不是预期值。

【讨论】:

  • 代码有效,问题将被关闭为“不可重现” - 问题是控制台在粘贴内容时总是返回未定义
【解决方案2】:

浏览器中的控制台环境旨在获取程序中的最后一个语句表达式并评估它的值,然后向您显示该值。如果语句没有返回任何东西,你会得到 undefined。

例如,如果您在控制台中输入 var x = 2,您将得到 undefined,但如果您输入 x = 2,您将得到 2。

【讨论】:

    猜你喜欢
    • 2013-03-06
    • 2022-09-23
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多