Javascript 为什么这段代码在JSBin中重复运行时运行方式不同?

Javascript 为什么这段代码在JSBin中重复运行时运行方式不同?,javascript,Javascript,在JSBin上,此代码每次运行时都会返回不同的数字,但这里它不是作为堆栈片段: 函数素数(num){ var素数=[]; var i=1; 而(primes.length如果您查看chrome控制台,您可以看到以下警告。这就是为什么在某个阶段会随机断开循环 退出线路6处的潜在无限回路。要禁用回路保护: 在代码中添加“//noprotect” 如果您在下面的代码上方添加一行//noprotect,并在JSBin中运行它,那么它将始终给出正确的答案 // noprotect function pr

在JSBin上,此代码每次运行时都会返回不同的数字,但这里它不是作为堆栈片段:

函数素数(num){
var素数=[];
var i=1;

而(primes.length如果您查看chrome控制台,您可以看到以下警告。这就是为什么在某个阶段会随机断开循环

退出线路6处的潜在无限回路。要禁用回路保护: 在代码中添加“//noprotect”

如果您在下面的代码上方添加一行
//noprotect
,并在JSBin中运行它,那么它将始终给出正确的答案

// noprotect
function prime(num) {
  var primes = [];
  var i = 1;

  while (primes.length <= num) {
    if (isPrime(i)) {
      primes.push(i);
    }
    i++;
  }

.....
//无保护
函数素数(num){
var素数=[];
var i=1;

虽然(primes.length,当我在JSbin中运行它时是这样的…,奇怪的是,这里的代码片段给出了正确的答案,但不是在JSbin上。是的,我在跟踪bin链接时做的第一件事。是的,在查看开发控制台之前第一次查看它时很奇怪:-)