JavaScript for 循环返回未定义

JavaScript for loop returning undefined

为什么我在下面的函数中得到 isPrime(2) 未定义? 就好像 var result; 之后的整个 if 语句被 isPrime(2) 而不是其他输入跳过了。我不明白为什么会这样。

function isPrime(num) {
  if (typeof num !== "number") {
    throw "The input needs to be a number!";
  }

  var result;

  if (num <= 1) {
    result = false;
  } else {
    for (i = 2; i < num; i++) {
      if (num % i === 0) {
        result = false;
        break;
      } else {
        result = true;
      }
    }
  }

  return result;
}

如果num为2那么这部分代码将不会被执行

for (i = 2; i < num; i++) {
  if (num % i === 0) {
    result = false;
    break;
  } else {
    result = true;
  }
}

因为 i 最初是 2 而 num 是 2,所以 2 < 2 是错误的。