经典面试题解析:
for(var i = 1 ; i < 5 ; i++){ console.log(i) } //1 2 3 4 ----------------------------------------------------- for(var i = 1 ; i < 5 ; i++){ setTimeout(function(){ console.log(i) },0) } //5 5 for(var i = 1 ; i < 5 ; i++){ setTimeout(()=>{ console.log(i) },0) } //5 5 ------------------------------------------------------- var 换成let之后得到的值为 for(let i = 1 ; i < 5 ; i++){ console.log(i) } //1234 for(let i = 1 ; i < 5 ; i++){ setTimeout(function(){ console.log(i) },0) } 1234 for(let i = 1 ; i < 5 ; i++){ setTimeout(()=>{ console.log(i) },0) } 1234 ----------------------------------------------------------- for(var i = 1 ; i < 5 ; i++){ (function(){ var now = i setTimeout(function(){ console.log(now) },0) })() } // 1234 for(var i = 1 ; i < 5 ; i++){ (function(now){ setTimeout(function(){ console.log(now) },0) })(i) } //1234
---------------------------------------
function Test(){
var k=0;
for(j=0,i=0;j<6,i<10;j++,i++)
{
k=i+j;
}
console.log(k);
}
Test()
//18
ps//(这里需要注意,循环继续的判断依据以分号前的最后一项为准,即判断i<10符不符合条件。for循环共执行10次,k的最终值等于18。如果把条件j<6,i<10;改成j<10,i<6;
结果将完全不同,此时循环执行到i=5就会结束,此时k=10。)
-----------------------------------------------------------
for循环实现九九乘法表
var num = '';
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
num += j + '×' + i + '=' + j * i + ' ';
}
num += '
';
}
//
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
或者
var i = 1;
var j = 1;
for (i = 1, j = 1; j <= 9; i++) {
console.log(j + "*" + i + "=" + j * i + " ");
if (i == j) {
i = 0;
j++;
console.log("
");
}
}