在JavaScript 中提供if
結(jié)構(gòu)和switch
結(jié)構(gòu)馋艺,滿足條件判斷,才會執(zhí)行相應(yīng)的語句嘉栓。
1. if語句
if語句的幾種形式
-
第一種形式
if (條件表達(dá)式) { 條件滿足執(zhí)行的語句 }
-
第二種形式
if (條件表達(dá)式) { 滿足條件表達(dá)式執(zhí)行的語句 } else { 不滿足條件執(zhí)行的語句 }
-
第三種形式
if (條件表達(dá)式1) { 滿足條件表達(dá)式1執(zhí)行的語句 } else if (條件表達(dá)式2) { 滿足條件表達(dá)式2執(zhí)行的語句 } ... else{ 都不滿足條件執(zhí)行的語句 }
2. if語句的幾個(gè)注意點(diǎn)
- 不是非布爾類型的先會轉(zhuǎn)換成布爾類型
// 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;
// 這里價(jià)格常量寫在前面 是為了防止寫錯(cuò)
// if (num = 5)
if(5 == num){
console.log("語句A");
}
console.log("語句B");
- if/else后面的大括號都可以省略, 但是省略之后只有緊隨其后的語句受到控制
if (false)
console.log("語句A");
console.log("語句B");
// 會輸出語句B 因?yàn)橹挥芯o隨其后的語句才有用
3. switch語句
switch格式
switch(表達(dá)式){
case 表達(dá)式A:
語句A;
break;
case 表達(dá)式B:
語句B;
break;
... ...
default:
前面所有case都不匹配執(zhí)行的代碼;
break;
}
switch特點(diǎn)
會從上至下的依次判斷每一個(gè)case是否和()中表達(dá)式的結(jié)果相等, 如果相等就執(zhí)行對應(yīng)case后面的代碼, 如果前面所有的case都不匹配, 那么就會執(zhí)行default后面的代碼
并且所有的case和default只有一個(gè)會被執(zhí)行, 并且只會被執(zhí)行一次
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的幾個(gè)注意點(diǎn)
- case判斷的是===, 而不是==
var age = 18;
switch (age) {
case "18":
console.log("字符串的18");
break;
default:
console.log("不匹配字符串的18!"); // 打印不匹配字符串的18麻昼!
break;
}
- switch()中可以是常量也可以是變量還可以是表達(dá)式
var total = 18;
switch (16 + 2 ) {
case 18:
console.log("總共18");
break;
default:
console.log("什么也不是奠支!");
break;
}
- case后面可以是常量也可以是變量還可以是表達(dá)式
var total = 18;
switch (18) {
// 表達(dá)式
// case 16 + 2:
// 常量
// case 18:
// 變量
case total:
console.log("總共18");
break;
default:
console.log("什么也不是!");
break;
}
- break的作用是立即結(jié)束整個(gè)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都不匹配再執(zhí)行
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;
}