代码调试

133 阅读3分钟

调试

调试的概念及作用:通过手动执行代码观察程序的执行顺序及变量数值

    调试的步骤     1.打断点:什么是断点?代码启动时停止的位置     2.刷新.进入了手动调试模式     3.蓝色横线代表即将执行但并未执行的代码行     -4.鼠标放到以执行代码的变量上,即可显示数值     ·5.点击单步运行按键Step over     6.结束调试,取消断点再次刷新

选择嵌套

if的嵌套不要超过5层(3层后就开始复杂了)
规避:
    var a = 1,
    b = 2,
    c = 3;
    if (a > 0 && b > 0 && c > 0) {
    console.log("相关操作");
    }

闰年问题

程序 = 算法 + 语法;
算法就是解决问题的方法, 以后需要独立
    if((四年一闰&&百年不闰)||四百年在闰){
    闰年
    } else {
    平年
    }

三目运算符

三目运算特指条件运算符,因为在JS中拥有三个操作数的运算符只有一个
    表达式1?表达式2:表达式3;
    表达式1是一个布尔值,为true返回表达式2,为false返回表达式1.
    c = a > b ? a : b;
    console.log(c);

switch

switch只能用于等值判断
通过匹配表达式的值和被匹配表达式比对,匹配成功则执行后续语句
switch (匹配表达式) {
    case 被匹配表达式1:
        语句;
    case 被匹配表达式2:
        语句;
    case 被匹配表达式3:
        语句;
    case 被匹配表达式4:
        语句;
}
注意事项:
    1.switch执行的顺序,switch只匹配一次,从匹配值开始,直至语句结束
    2.break阻止穿透效果
    3.case后面不能写范围
    4.default,代表之前所有条件的对立面
    5.所有非关联性的case,顺序可以任意替换

while

注意事项:
    1.执行顺序
        while的执行顺序是先条件表达式,在循环体
        如果条件表达式为真,则执行循环体,然后继续判断条件
        如果条件为假则跳出循环
    2.循环构成的要素
        a.循环变量
        b.(有限次数的循环),必须有使循环趋近于结束的条件
        c.循环体,每次循环要执行的  
        while(条件表达式){
            循环体;
        }
    1+2+...+99+100
​
    var sum = 0; //统计和
    var i = 1; //循环变量必须要初始化
    while (i <= 100) {
        sum += i;
        i++;
    }
    console.log(sum, i);

while和do...while的异同

当首次条件成立时,whiledo...while没有区别
当首次条件不成立时,do...while要比while多执行一次循环体

for

for(表达式1;表达式2;表达式3){1243243243...
    表达式4;
}
表达式1:初始换循环变量
表达式2:循环条件
表达式3:使循环趋近于结束的条件
表达式4:循环体
var sum = 0
for (var i = 0; i <= 100; i++) {
    sum += i;
}
console.log(sum);
使用场景:
    1.知道循环次数用for
    2.不知道循环次数用while
        已知一张纸的厚度是0.001米,假设纸张可以无限对折,请问对折多少次纸的厚度可以超过8848
        var h = 0.001;
        var count = 0;
        while (h < 8848) {
            h *= 2;
            count++;
        }
        console.log(count);
    3.基本就不用do...while

2.水仙花数

水仙花数一个三位数,各位的立方+十位的立方+百位的立方等于该数本身
abc == a*a*a + b*b*b + c*c
程序 = 算法 + 语法;
算法是考虑步骤
1. 先拆解数字 
    var i = 100;
    var x = i;
    var a; //百
    var b; //十
    var c; //个
    c = x % 10; //123%10
    x = parseInt(x / 10); //12
    b = x % 10;
    x = parseInt(x / 10); //1
    a = x % 1
    console.log(a, b, c
2. 进行判断
 if (i == a * a * a + b * b * b + c * c * c) {
     console.log(i);
 }
3.将100~999的数值循环判断一
========================================================
var x, a, b, c;
​
for (var i = 100; i < 1000; i++) {
    x = i;
    c = x % 10;
    x = parseInt(x / 10);
    b = x % 10;
    x = parseInt(x / 10);
    a = x % 10;
​
    if (i == a * a * a + b * b * b + c * c * c) {
        console.log(i);
    }
}