javascript中奇怪的循环行为

我确信这是非常基本的,但我很困惑.

如果我在浏览器中调用以下函数

function bar(){
    var userInput=prompt("Enter a number between 1 and 20");
    if(userInput>=1 && userInput<=20){          
        var x=Number(userInput)+15;
        for(var i=0;i<x;i++){
            console.log("<br> blah. x=" + x );               //line1
            //console.log("<br> blah. x=" + x + " i=" + i ); //line2            
        }
    } else {
        console.log("Invalid number; please try again");
    }
}

并提供(比如)值5,我意外得到以下一行输出

<br> blah. x=20

但是,如果我提供相同的值,但注释掉第一行并取消注释第二行,我得到以下(预期)输出

<br> blah. x=20 i=0
<br> blah. x=20 i=1
<br> blah. x=20 i=2
<br> blah. x=20 i=3
<br> blah. x=20 i=4
<br> blah. x=20 i=5
<br> blah. x=20 i=6
<br> blah. x=20 i=7
<br> blah. x=20 i=8
<br> blah. x=20 i=9
<br> blah. x=20 i=10
<br> blah. x=20 i=11
<br> blah. x=20 i=12
<br> blah. x=20 i=13
<br> blah. x=20 i=14
<br> blah. x=20 i=15
<br> blah. x=20 i=16
<br> blah. x=20 i=17
<br> blah. x=20 i=18
<br> blah. x=20 i=19

为什么是这样?显然有一个原因.
提前致谢.

解决方法

如果我理解正确,控制台会告诉你:

preview

这意味着,同一行重复20次.看前面的20号码?这种方式更容易理解,因此控制台会将所有相似或相同的响应分组,并在左侧显示数字.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...