(js基础篇)3.条件分支-if和'?'

385 阅读1分钟

1."if"语句

  • if(...)语句计算括号里的条件表达式,如果计算结果是true,就会执行对应的代码块。

    let a = 3;
    if(a > 1){
      console.log('执行了!');
    }
    

2.布尔转换

  • if(...)语句会计算圆括号内的表达式,并将计算结果转换为布尔型。

下面代码永远不会执行

if(0){  // 0 是falsy
	...
}

下面代码永远有效

if(1){  // 1 是truthy
	... 
}
  • 也可以将未计算的布尔值传入if语句

      let nowAge = 22
      let isAdult = ( nowAge >= 18 );
      if(isAdult){
      	console.log('成年了');
      }
    

3.'else'语句

说明:if语句有时会包含一个可选的"else"块。如果判断条件不成立,就会执行它内部的代码。

let nowAge = 17
let isAdult = ( nowAge >= 18 );
if(isAdult){
  console.log('成年了');
}else{  // 执行else
  console.log('未成年')
}

4.多个条件:"else if"

代码:

let status = 1;
if(status == 0){
  console.log('关闭了');
}else if(status == 1){
  console.log('打开了');
}else{
  console.log('状态异常')
}

5.条件运算符"?"

  • 条件运算符用"?"表示,我们也会称为三元运算符。

    let isOn = true;
    // 结果:开关打开了
    isOn ? console.log('开关打开了!') : console.log('开关关闭了!')
    

6.多个"?"

  • 使用一系列问号?运算符可以返回一个取决于多个条件的值

      let status = 5;
      let words = (status == 1) ? " 未支付" :
        (status == 2) ? "已支付未发货" :
        (status == 3) ? "已发货" :
        (status == 4) ? "已收货" : "已关闭";
      console.log(words); // 已关闭
    

7.'?'的非常规使用

  • 有时可以使用问好?来代替if语句:


    let angle = 1; (angle == 1) ? console.log('我生气了!'):console.log('心平气和')