¿Por qué no estoy definido para isPrime (2) en la siguiente función? Es como si toda la declaración if justo después de var result; se omite para isPrime(2) pero no para otras entradas. No entiendo por qué esto es así.
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; }Si num es 2, entonces esta parte de un código no se ejecutará
for (i = 2; i < num; i++) { if (num % i === 0) { result = false; break; } else { result = true; } }dado que i es inicialmente 2 y num es 2, 2 < 2 es falso.