经典面试题解析:
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 + '\t';
}
num += '\n';
}
//
1×1=1
1×2=22×2=4
1×3=32×3=63×3=9
1×4=42×4=83×4=124×4=16
1×5=52×5=103×5=154×5=205×5=25
1×6=62×6=123×6=184×6=245×6=306×6=36
1×7=72×7=143×7=214×7=285×7=356×7=427×7=49
1×8=82×8=163×8=244×8=325×8=406×8=487×8=568×8=64
1×9=92×9=183×9=274×9=365×9=456×9=547×9=638×9=729×9=81
或者
var i = 1;
var j = 1;
for (i = 1, j = 1; j <= 9; i++) {
console.log(j + "*" + i + "=" + j * i + "\t");
if (i == j) {
i = 0;
j++;
console.log("\n");
}
}