1.三元运算符
-
三元运算,就是用 两个符号 组成一个语句
-
三元运算只是对 if else 语句的一个简写形式
-
语法:
条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行
-
例子
var age = 20; // if(age>=18){ // console.log("你是成年人"); // } // else{ // console.log("你是未成年人"); // } // 条件 ? 条件为真的值 : 条件为假的值 // 如果条件为真 那么输出冒号左边的 为假 输出 冒号右边的 // var res = age>=18?'成年':'未成年' // console.log(res); // 三元运算符就是对if else结构的一个简写 // 让用户输入一个数字 0 男 1 女 var num = parseInt(prompt("请输入你的性别 0男 1女 输入1或者0")); // if(num==0){ //条件中不可能出现 一个等号的情况 要么 == 要么 === // console.log("你是男生"); // } // else{ // console.log('你是女生') // } num==0?console.log("你是男生"):console.log('你是女生');
2.分支嵌套
例子
例子1 // 买票了 //通过安检 // 绿码 // 红码 //没有通过安检 // 没买票 var res = parseInt(prompt("请输入你的结果 1买票了 0没买")); if(res==1){ console.log("感谢购买"); var res1 = parseInt(prompt("请输入你的结果 1通过安检 0没通过安检")); if(res1 ==1){ console.log('感谢配合') var res2 = parseInt(prompt('请出示你的健康码 1绿码 0红码')); if(res2 == 1){ console.log('旅途愉快') } else{ console.log('请去医院检查') } } else{ console.log("请重新安检"); } } else{ console.log("请先买票"); } 例子2 // 输入年 // 输入月 // 输入日 //判断这是一年的第几天 var year = parseInt(prompt('请输入年份')); var month = parseInt(prompt('请输入月份')); var day = parseInt(prompt('请输入日期')); //天数累加 2022年8月17日 1-7天数累加 + 17 // 闰年 2月29 平年 28天 //1 3 5 7 8 10 12 31 //4 6 9 11 30 // 准备一个容器 变量 用来累加天数 var date = day; // 根据月份进行判断 好知道是多少天 // 大于1 累加 1月整月的天数 // 大于2 累加 1+2月整月的天数 // 大于3 累加 1+2+3月整月的天数 if(month>1) date += 31; if(month>2){ date += (year %4== 0 && year % 100 !=0) || (year % 400 ===0) ? 29:28; } if(month>3) date += 31; if(month>4) date += 30; if(month>5) date += 31; if(month>6) date += 30; if(month>7) date += 31; if(month>8) date += 31; if(month>9) date += 30; if(month>10) date += 31; if(month>11) date += 30; console.log(`第${date}天`)
3.SWITCH 条件分支结构
-
也是条件判断语句的一种
-
是对于某一个变量的判断
-
语法:
-
switch (要判断的变量) { case 情况1: 情况1要执行的代码 break case 情况2: 情况2要执行的代码 break case 情况3: 情况3要执行的代码 break default: 上述情况都不满足的时候执行的代码 } 例子1 让用户输入一个月份 1-12 // 1 31 2 28 var month = parseInt(prompt('请输入一个月份')); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: console.log('31天'); break; case 'true': case 6: case 9: case 11: console.log('30天'); break; case 2: console.log('28天'); break; default: console.log('请输入正确的月份'); break; } 例子2 var score = parseInt(prompt("请输入你的分数")); switch(parseInt(score/10)){ case 10: case 11: case 12: case 9: console.log('A'); break; case 8: console.log('B'); break; case 7: console.log('C'); break; case 6: console.log('D'); break; default: console.log('E'); break;}
SWITCH方法补充
var num = 123.456789; alert(num.toFixed(2)); false || true && false false || false if(false && true || true && false){ console.log('true'); } else{ console.log('走到这里alse'); } 默认从左往右执行 逻辑与 逻辑或在一起的 先执行逻辑与 alert(!(true) && true) 逻辑非 和逻辑与 在一起的时候 先执行逻辑非 逻辑非 ! > 逻辑与 &&> 逻辑或 || == 值相等 === 值和类型 都相等 Object.is(数据1,数据2) 判断两个数据是否一致 返回的是一个布尔类型的结果 alert(Object.is(1,'1')) // false alert(Object.is(1,1)) // true alert(undefined == null) // true alert(Object.is(undefined,null)) // falsalert(Object.is(NaN,NaN)) // true 如果为true 说明两个数据一致 false 不一致
4.循环结构
-
while
,中文叫 当…时,其实就是当条件满足时就执行代码,一旦不满足了就不执行了 -
语法
while (条件) { 满足条件就执行 }
-
因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了
// 1. 初始化条件 var num = 0; // 2. 条件判断 while (num < 10) { // 3. 要执行的代码 console.log('当前的 num 的值是 ' + num) // 4. 自身改变 num = num + 1 } // 初始值 计数器 默认 0 // 判断条件 计数器 <= 10 // 执行的代码 跑步 // 计数器 计数器++ // 计数器 // while(条件判断){ // 条件满足的执行的代码; // 计数器++; // } 例子1 var count = 0; //设置初始值 为0 也可以设置为1 while(count<5){ console.log('正在跑第'+(count)+'圈'); // 0 1 2 3 4 count++; // 1 2 3 4 5 } var count = 0; //设置初始值 为0 也可以设置为1 while(count<5){ count++; // 1 2 3 4 5 console.log('正在跑第'+(count)+'圈'); // 1 2 3 4 5 } 例子2 累加1~5之间的和 var n = 0; // 1 2 3 4 5 var sum = 0; // 这个容器用来存放最后的和 while(n<100){ n++; // 1 2 3 4 5 sum += n; // 0+1 0+1+2 0+1+2+3 0+1+2+3+4 0+1+2+3+4+5 console.log(sum) // 1 2 3 4 5 } 例子3 构建1-10 var n=0; //初始化条件 while(n<10){ n++; // 执行的代码 自身变化的部分 console.log(n); } 例子4 var n=1; //初始化条件 var sum=0; while(n<=100){ console.log(n); // 1 2 3 4 5 6 7 8 9 10 if(n%2==0){ sum+=n; } n++; // 执行的代码 自身变化的部分 } console.log(sum); // 25 例子5 var n=1; //初始化条件 while(n<=100){ console.log(n); // 1 2 3 4 5 6 7 8 9 10.... 100 if(n%3==0){ console.log(n) } n++; // 执行的代码 自身变化的部分 } 例子6 求1-100内所有3的倍数 var n=3; //初始化条件 var sum=0; while(n<=100){ sum+=n; n+=3; } console.log(sum);
死循环
只要while条件为true 循环就会执行
死循环就是条件永远为true
我们在开发过程中 也会刻意制造死循环
while(true){ console.log('死循环') }