回到课程

重复检测,直到输入是一个数字

重要程度: 5

创建一个函数 readNumber,它提示输入一个数字,直到访问者输入一个有效的数字。

结果值必须作为数字返回。

访问者也可以通过输入空行或按“取消”来停止该过程。在这种情况下,函数应该返回 null

运行 demo

打开带有测试的沙箱。

function readNumber() {
  let num;

  do {
    num = prompt("Enter a number please?", 0);
  } while ( !isFinite(num) );

  if (num === null || num === '') return null;

  return +num;
}

alert(`Read: ${readNumber()}`);

该解决方案有点复杂,可能是因为我们需要处理 null/空行。

所以我们实际上接受输入,直到它成为“常规数字”。null(取消)和空行都适合该条件,因为在数字形式中它们是 0

在我们停止之后,我们需要专门处理 null 和空行(返回 null),因为将它们转换为数字将返回 0

使用沙箱的测试功能打开解决方案。