在JavaScript 中提供if
结构和switch
结构,满足条件判断,才会执行相应的语句。
1. if语句
if语句的几种形式
-
第一种形式
if (条件表达式) { 条件满足执行的语句 }
-
第二种形式
if (条件表达式) { 满足条件表达式执行的语句 } else { 不满足条件执行的语句 }
-
第三种形式
if (条件表达式1) { 满足条件表达式1执行的语句 } else if (条件表达式2) { 满足条件表达式2执行的语句 } ... else{ 都不满足条件执行的语句 }
2. if语句的几个注意点
- 不是非布尔类型的先会转换成布尔类型
// Boolean(null) ==> false
if(null){
console.log('语句A');
}else{
console.log('语句B');
}
// Boolean('123') ==> true
if ('123') {
console.log('语句A');
} else {
console.log('语句B');
}
- 对于
==
、===
判断, 将常量写在前面
var num = 10;
// 这里价格常量写在前面 是为了防止写错
// if (num = 5)
if(5 == num){
console.log("语句A");
}
console.log("语句B");
- if/else后面的大括号都可以省略, 但是省略之后只有紧随其后的语句受到控制
if (false)
console.log("语句A");
console.log("语句B");
// 会输出语句B 因为只有紧随其后的语句才有用
3. switch语句
switch格式
switch(表达式){
case 表达式A:
语句A;
break;
case 表达式B:
语句B;
break;
... ...
default:
前面所有case都不匹配执行的代码;
break;
}
switch特点
会从上至下的依次判断每一个case是否和()中表达式的结果相等, 如果相等就执行对应case后面的代码, 如果前面所有的case都不匹配, 那么就会执行default后面的代码
并且所有的case和default只有一个会被执行, 并且只会被执行一次
var day = 7;
switch (day) {
case 1:
console.log("周一");
break;
case 2:
console.log("周二");
break;
case 3:
console.log("周三");
break;
case 4:
console.log("周四");
break;
case 5:
console.log("周五");
break;
case 6:
console.log("周六");
break;
case 7:
console.log("周日");
break;
default:
console.log("你是外星人吧!");
break;
}
4. switch的几个注意点
- case判断的是===, 而不是==
var age = 18;
switch (age) {
case "18":
console.log("字符串的18");
break;
default:
console.log("不匹配字符串的18!"); // 打印不匹配字符串的18!
break;
}
- switch()中可以是常量也可以是变量还可以是表达式
var total = 18;
switch (16 + 2 ) {
case 18:
console.log("总共18");
break;
default:
console.log("什么也不是!");
break;
}
- case后面可以是常量也可以是变量还可以是表达式
var total = 18;
switch (18) {
// 表达式
// case 16 + 2:
// 常量
// case 18:
// 变量
case total:
console.log("总共18");
break;
default:
console.log("什么也不是!");
break;
}
- break的作用是立即结束整个switch语句
var num = 1;
switch (num) {
case 1:
console.log("1");
break;
case 2:
console.log("2");
break;
default:
console.log("Other");
break;
}
- default不一定要写在最后,default无论放到什么位置, 都会等到所有case都不匹配再执行
var num = 7;
switch (num) {
// default:
// console.log("Other");
// break;
case 1:
console.log("1");
break;
default:
console.log("Other");
break;
case 2:
console.log("2");
break;
}
- 和if/else中的else一样, default也可以省略
var num = 7;
switch (num) {
case 1:
console.log("1");
break;
case 2:
console.log("2");
break;
}