0

我打印了 100 个素数,但最后我也没有定义。为什么会这样?

function HundoPrimeNumbers() {
    var primes = [];

    function isPrime(n) {
        if (isNaN(n) || !isFinite(n) || n % 1 || n < 2) return false;
        var m = Math.sqrt(n);
        for (var i = 2; i <= m; i++) if (n % i == 0) return false;
        primes.push(n);
    }

    var n = 0
    while (primes.length < 100) {
        isPrime(n);
        n++;
    }
    console.log(primes.join());
}

console.log(HundoPrimeNumbers());
4

2 回答 2

3

您正在记录以下结果HundoPrimeNumbers

console.log(HundoPrimeNumbers()); 

HundoPrimeNumbers没有return声明。当一个函数没有 return 语句,或者没有返回值时,比如return;,它实际上最终会返回undefined。然后将其记录到控制台。

解决方案:这样称呼它:

HundoPrimeNumbers();
于 2013-06-22T16:34:09.143 回答
0

undefined是 console.log() 的返回值

于 2013-06-22T16:37:58.603 回答