今天无意中看到这个题:
for ( var i = 0 , j = 0 ; i < 6 ,j < 10; i++,j++) {
k = i + j ;
}
console.log(k);
结果第一反应是 10
然而输出一看 18
于是问了下百度是这样说的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
</html>
<script>
for ( i = 0, j = 0 ; i < 6, j < 10 ; i++ , j++ ) {
k = i + j ;
}
console.log(k);//18
// 原因是循环继续的判断依据以分号前的最后一项为准
// 如以上是判断 j < 10 的 所以前面的判断条件 (j < 6)不会执行
// 不管循环几个数,都是以分号前的最后一项为准
for (i = 0, j = 0 , a = 0; i < 5, j < 11, a < 16; i++ , j++ , a++) {
k = i + j + a ;
}
console.log(k);// 45
</script>