需要检查用户输入的是否是数字。代码未按预期工作。有人能告诉我怎么了吗?

Need to check whether user input is a number. Code is not working as intended. Can someone tell me what's wrong?

只需要检查数据用户在提示中输入的是Javascript

中的数字
  var userAge = prompt("Please enter your age", "");
    if (typeof userAge == 'number') {
      document.write("You are " + userAge + " years old.");
    } else {
      document.write('Please enter a valid number');
    }

当我输入 28 岁进行测试时,我希望 "You are 28 years old." 会打印到文档中。但是,它会打印代码的其他部分:"Please enter a valid number."

来自 prompt 的值是 string。使用 isNaN 代替:

var userAge = prompt("Please enter your age", "");
if (isNaN(userAge)) {
  document.write('Please enter a valid number');
} else {
  document.write("You are " + userAge + " years old.");
}

JavaScript 中用单引号或双引号括起来的任何数字或值都被视为字符串,因此,typeof userAge 等于 'string'

改用此代码:

var userAge = prompt("Please enter your age", "");

if (/^\d+[.]?\d+$/.test(userAge)) {
  document.write("You are " + userAge + " years old.");

} else {
  document.write('Please enter a valid number');
}

只需使用 Number.parseInt(), then use Number.isNaN() 转换为数字,如下所示:

var userAge = parseInt(prompt("Please enter your age"));
if (isNaN(userAge)) {
  document.write('Please enter a valid number');
} else {
  document.write("You are " + userAge + " years old.");
}