js双重循环 函数 调试

235 阅读2分钟

双重for循环的规律是 外层执行一次 内层执行一遍

for(var i=0;i<3;i++){
     document.write('第一层循环'+i+'<br>');
       for(var j=0;j<3;j++){
            document.write('第二层循环'+j+'<br>');
    }
 }

三元表达式 三目表达式

false?console.log(1):console.log(2);

true执行第一个 false执行第二个函数

递归函数 自己调用自己

Maximum call stack size exceeded 死循环 内存溢出

 function fn(){
     console.log(1);
        fn()
   }
   fn();
   

所以需要加判断条件

3包括3 以内的数进行累加

 function fn(n){
    if(n>=1){
        return n + fn(n-1)
        /* 3+2+1+0 */
    }
    /* 必须return 0 否则最后一次 fn(0) 会返回undefined */
    /* 3+2+1+undefined = NaN (not a number 不是一个数字) */
    return 0;
}
let num = fn(3);
console.log(num);
 /* 必须return 0 否则最后一次 fn(0) 会返回undefined */
    /* 3+2+1+undefined = NaN (not a number 不是一个数字) */

break语句用于终止某个循环,使程序跳到循环块外的下一条语句 在循环中位于break后的语句将不再执行 break 语句不仅可以用在for循环中,也可以用在其他循环中

continue 跳过 不会终止循环,但是会跳过本次循环 , continue结束本次循环,进入下次循环

调试

初级调试 使用console.log或者alert

// for(var i=0;i<3;i++){
    //     /* 这种情况是开发时候调试 */
    //     /* debugger */
    //     /* 如果是线上代码 需要调试 是用控制台里面断点 */
    //     document.write('<br>第一层循环'+i);
    //     for(var j=0;j<3;j++){
    //         document.write('<br>第二层循环'+j);
    //     }
  /* 通常打的断点是不会进入方法体的 
    如果想进入方法体 要使用F11快捷键 */

在sources找到对应的js文件,打上断点

1.png 刷新页面 出现灰色区域表示进入调试模式

2.png 上面的按钮表示下一步 也可以使用快捷键f10

3.png 上面的按钮表示终止本次调试(终止不了可以多点几次),但是刷新依然会进入调试模式

4.png 点击上面的蓝色按钮,表示取消断点,再次刷新页面就不会进入调试模式