if条件语句
有时我们需要根据不同条件执行不同的操作,我们可以使用 if
语句来实现。if(...)
语句计算括号里的条件表达式,如果计算结果是 true
,就会执行对应的代码块。
例如:
var a = 5;//a是变量可以定义任何值
if( a > 0 ){
console.log(a+"是正数"); //条件成立,执行后面的代码块
}
if (…)
语句会计算圆括号内的表达式,并将计算结果转换为布尔型。数字 0
、空字符串 ""
、null
、undefined
和 NaN
都会被转换成 false
。因为它们被称为“假值(falsy)”值。其他值被转换为 true
,所以它们被称为“真值(truthy)”。
else 语句
if
语句有时会包含一个可选的 "else" 块。如果判断条件不成立,就会执行它内部的代码。比如上面的代码可以再次判断:
var a = -5;//a是变量可以定义任何值
if( a > 0 ){
console.log(a+"是正数");
}else{
console.log(a+"是负数");//if条件不成立 执行else的代码块
}
多个条件 else if
有时我们需要测试一个条件的几个变体。我们可以通过使用 else if
子句实现。比如上面的else语句还有一点不合理的地方,因为0既不是负数也不是整数。
var a = 0;//a是变量可以定义任何值
if( a > 0 ){
console.log(a+"是正数");
}else if( a = 0 ){
console.log(a+"既不是负数也不是正数");
}else{
console.log(a+"是负数");//if条件不成立 执行else的代码块
}
可以有更多的
else if
块,结尾的else
也不是必须的。
switch分支语句
switch
语句可以替代多个 if
判断。switch
语句为多分支选择的情况提供了一个更具描述性的方式。
switch
语句有至少一个 case
代码块和一个可选的 default
代码块。比如下面这样
var a = 12;//a可以是任意值
switch(a%2){
case 0:
console.log(a+"是偶数");
break;
case 1:
console.log(a+"是奇数");
break;
default:
console.log("----");//可选的分支语句,当上面的分支不可执行时会执行default语句
}
break关键字用于跳出switch语句,如果缺少break会出现多个分支被执行的情况。当前如果没有符合的 case,则执行
default
代码块(如果default
存在)。
case 分组
switch/case
有通过 case 进行“分组”的能力,其实是 switch 语句没有 break
时的副作用。如果几个 case
分支可以被分为一组,那么它们可以共享一段代码
var a = 5;//假设a是星期的某一天
switch(a){
case 1:
case 2:
case 3:
case 4:
case 5:
console.log(a+"是工作日");
break;
case 6:
case 7:
console.log(a+"是休息日");
break;
}
switch 中 case的判断是===的判断,即数据类型和值的双重判断,这点要注意。另外switch的判断条件可以是String 、Number、Boolean、char、枚举、null、undefined