回到课程

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

重要程度: 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

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