三元运算符
三元运算只是对 if else 语句的一个简写形式
语法: 条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行
var age = prompt("用户输入一个数字(0/1)") // 1.if else实现 // 条件中不可能出现一个等号的情况 要么== 要么=== if(age==1){ alert("女") }else{ alert("男") } // 三元运算符实现 age == 1 ? alert("女") : alert("男")
分支嵌套
代码举例:
//输入年月日 输出这是第几天 var year = parseInt(prompt("请输入年份:")) var mouse = parseInt(prompt("请输入月份:")) var day = parseInt(prompt("请输入日:")) //1 3 5 7 8 10 12 //2 //4 6 9 11
第一种 if else
var d; if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { if(mouse == 1){ d = day; } else if(mouse == 2){ d = 31+day } else if (mouse == 3 || mouse == 5 || mouse == 7) { d = parseInt(mouse/2)*31(parseInt(mouse/2)-1)*30+29+day } else if(mouse == 8 || mouse == 10 || mouse == 12){ d = parseInt(mouse/2)*31+(parseInt(mouse/2)-2)*30+29+day } }else{ if(mouse == 1){ d = day; } else if(mouse == 2){ d = 31+day } else if (mouse == 3 || mouse == 5 || mouse == 7) { d = parseInt(mouse/2)*31+(parseInt(mouse/2)-1)*30+28+day } else if(mouse == 8 || mouse == 10 || mouse == 12){ d = parseInt(mouse/2)*31+(parseInt(mouse/2)-2)*30+28+day } } alert("一共"+d+"天");
第二种 if
var a = day; if(mouse > 1){ a += 31; } if(mouse > 2){ (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ? a+=29 : a+=28; } if(mouse > 3){ a += 31; } if(mouse > 4){ a += 30; } if(mouse > 5){ a += 31; } if(mouse > 6){ a += 30; } if(mouse > 7){ a += 31; } if(mouse > 8){ a += 31; } if(mouse > 9){ a += 30; } if(mouse > 10){ a += 31; } if(mouse > 11){ a += 30; } console.log("一共"+a+"天");
switch分支结构
结构
switch(条件(可以是公式)){ case 结果/情况1://必须是结果,不能是式子 执行语句; break;//阻断程序继续向下执行 case 结果/情况2: 执行语句; break; default://如果switch 括号里边的结果 都不在上边的case中 //那么就会走 default 执行语句; break; }
代码参考:
//输入分数,判断等级 var score = parseInt(prompt("请输入你的分数:")) switch(parseInt(score/10)){ case 10: alert("S");break; case 9: alert("A");break; case 8: alert("B");break; case 7: alert("C");break; case 6: alert("D");break; default: alert("E");break; }
循环结构
结构
while(条件判断){
条件满足后要执行的代码;
计时器++;
}
代码参考:
求1-100内所有偶数的和 var num = 1; var sum = 0; while(num<=100){ if(num%2==0){ sum += num; } num++; } alert("1-100所有偶数的和是"+sum);
死循环
只要while条件为true 循环就会执行
死循环就是条件永远为true
我们在开发过程中 也会刻意制造死循环
while(true){ console.log('死循环') }
补充
交换两个变量的值
var x = 12; var y = 21; var tem; tem = x; x = y; y = tem; console.log('x='+x); console.log('y='+y);
保留小数点后几位
借助工具 .toFixed()
四舍五入
var num = 123.456789; alert(num.toFixed(3));
优先级问题
默认从左往右执行
逻辑非 ! > 逻辑与 &&> 逻辑或 ||
逻辑与 逻辑或在一起的 先执行逻辑与
if(false && true || true && false){ console.log('true'); }else{ console.log('走到这里alse');//输出 }
逻辑非 和逻辑与 在一起的时候 先 逻辑非
alert(!(true) && true)//false
判断两个数据是否一致
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)) // false alert(Object.is(NaN,NaN)) // true 如果位true 说明两个数据一致 //false 不一致