1:双层for循环:
for (外循环的初始; 外循环的条件; 外循环的操作表达式) {
for (内循环的初始; 内循环的条件; 内循环的操作表达式) {
需执行的代码;
}
}
执行思路是:外面执行一次,里面执行全部;然后外面再次循环一次,里面再次执行全部,直到外面执行完毕。 案列:
var star = '';
for (var j = 1; j <= 3; j++) {
for (var i = 1; i <= 3; i++) {
star += '☆'
}
// 每次满 3个星星 就 加一次换行
star += '\n'
}console.log(star);
*案列:九九乘法表
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
if (i * j < 10) {
document.write(+ i + '*' + j + '=' + i * j + ' ');
} else {
document.write(+ i + '*' + j + '=' + i * j + ' ');
}
} document.write('<br>')
}
2:continue
-
continue关键字 退出当前的循环次,继续执行之后的循环*/ 案列:
for (var i = 1; i <= 5; i++) { if (i == 3) { continue; }console.log('我正在吃第' + i + '个包子'); } 运行是:我正在吃第一个包子。我正在吃第二个包子; 我正在吃第四个包子;我正在吃第五个包子; -
当条件后面只需要写一个continue时候,可以空格后面直接加然后;结束
for (var i = 1; i <= 5; i++){ if(i == 3) continue;document.write(i); }
3:break跳转
-
break跳出循环,循环终止,下面的语句不执行
for (var i = 1; i <= 5; i++) { if(i == 3) { break; }console.log('我在吃滴'+ i+ '八字'); } 运行时:我在吃滴1个包子,我正在吃第二个包子;。之后的就不循环了,就跳出了
4:递归函数:自己调用自己
function fn(n){
if (n>=1){
return n + fn(n-1)
}
return 0/* 必须retur 0;否则最后一次fn(0) 会返回 undefined,运行的是: 3+2+1+undefined不是一个数字
}
let num = fn (3);
document.write(num);
5:匿名函数:自己执行自己
-
写一函数,执行这个函数,通过里面的prompt获得输入的汽车的价格 如果大于10w 就显示适合代步了 如果大于20w 显示太贵了
用小括号括起来来表示成一个表达式 匿名的函数,自执行的函数 let str = (function () { let price = parseInt(prompt('汽车价格')); if (price > 200000) { return '太贵了' } if (price > 100000) { return '代步' } })() document.write('<h1>'+str+'</h1>'); */
6:调试:
* 初级调试方法:console.log 打印出来看。或是alert 显示出每一步输入的内容,进行调试检查。
* 高级调试方式: 断点调试(好处1:可以快速履清代码运行的先后顺序,验证自己的想法是否正确,好处2:可以查看集合里面的数据)
断点调试的流程:
1、浏览器中按 F12--> sources -->找到需要调试的文件-->在程序的某一行设置断点,刷新页面,出现灰色区域,表示进入调试模式,灰色区域最右边的按钮表示下一步,
2、Watch: 监视,通过watch可以监视变量的值的变化,非常的常用。
3、摁下F10,程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值的变化。