判断
判断是代码流程控制的一个重要环节,绝大多数逻辑的实现都离不开判断。
1. if判断
写法:
//单个if
if( 条件 )
{
//条件为真时执行的代码
}
//if else
if( 条件 )
{
//条件为真时执行的代码
}
else
{
//条件为假时执行的代码
}
//多个else
if( 条件1 )
{
//条件1为真时执行的代码
}
else if( 条件2 )
{
//条件1假 条件2真时执行的代码
}
else if( 条件3 )
{
//条件1条件2都为假 条件3为真时执行的代码
}
//可以一直列下去,可以if(){}结束,也可以else{}结束。
2. 三目运算
真语句为一条,假语句也只有一条时,我们可以将这种if else语句改为三目写法;
条件 ? 真执行的语句 : 假执行的语句;
let a;
let b;
//if
if( a > b ){
oBox.className = "goudan";
}else{
oBox.className = "dachui";
}
//三目
oBox.className = a>b ? "goudan" : "dachui";
三目不一定比if好,只是三目有些时候看起来比if更直观,但是有些时候if看起来会比三目更直观。
结合三目的使用:
真语句或者假语句不止一条时,是不是不能用三目呢?不一定,比如:
//ifelse
if(2>5){
console.log(1);
console.log(1);
console.log(1);
}else{
console.log(2);
console.log(3);
console.log(4);
}
//改成三目
2>5?(
console.log(1),
console.log(1),
console.log(1)
):
(
console.log(2),
console.log(3),
console.log(4)
);
3. switch
特殊形式的if else可以改写为switch,更清晰。
例:(注意关键词 switch case break default)
let a;
//if else
if( a === "lh" ){
//code1
}else if( a === "ysc" ){
//code2
}else if( a === "zzt" ){
//code3
}else{
//code4
}
//switch
switch(a){
case "lh":
//code1
break;
case "ysc":
//code2
break;
case "zzt":
//code3
break;
default:
//code4
break;
}
4. 使用 && || 来代替判断
有时候会用到
例:
let a;
let b;
//if
if(a){
somecode;
}
//逻辑
a && somecode;
//if
if( a > b ){
console.log(2);
}else{
console.log(3);
}
//三目
console.log(a>b?2:3);
//逻辑运算
console.log(a>b && 2 || 3);