JS中的條件判斷能夠說在整個編程的重點中算是最爲簡單的了;javascript
- 主要有
if...else if...else
,三元運算符
,switch...case
;- 其中嚴格來講
三元運算符
並不算條件判斷的一種方式,而應該算是對簡單if...else
條件語句的一種改寫方式。
編程中最多見的判斷java
if....else if...else
語句來選擇多個代碼塊之一來執行。if (條件 1) {
條件 1 爲 true 時執行的代碼塊
} else if (條件 2) {
條件 1 爲 false 而條件 2 爲 true 時執行的代碼塊
} else {
條件 1 和條件 2 同時爲 false 時執行的代碼塊
}
複製代碼
if
條件爲一個值時會轉換爲布爾值:
true
就表示條件成立false
表示條件不成立let x = 10;
if (x) {
條件(驗證真假的過程):
x==10 x===10 x>10 x<10 x>=10 ...
x 把當前值轉換爲布爾類型驗證真假
x>=0 && x<=10 或者 x==1 || x==2
....
x++;
} else {
以上條件都不成立,執行else
x--;
}
console.log(x);
//=======================================//
let x = '10';
if (x == 1) {
x += 1;
} else if (x == 5) {
x += 2;
} else if (x == 10) { //=>'10'==10 把字符串轉換爲數字 條件成立
x += 3;
// x = x + 3 => '103'
} else {
x += 4;
}
console.log(x);
複製代碼
在文章的開頭咱們已經說過,嚴格上講,三元運算符並不算是一種判斷。編程
使用狀況:ui
語法:spa
let x = 10;
if (x>=10) {
x++;
} else {
x--;
}
//用三元運算符書寫以下:
x >= 10 ? x++ : x--;
console.log(x);
複製代碼
注意:3d
let x = 10;
if (x == 10) {
x++;
}
//三元運算符方式
let x = 10;
x == 10 ? x++ : null;
複製代碼
// 若是須要作多件事情,則用小括號包起來,每一件事情中間用逗號分隔便可
let x = 10;
if (x > 0) {
x++;
console.log(x);
}
x > 0 ? (x++, console.log(x)) : null;
// 能夠根據需求完成三元運算符的嵌套
let x = 10;
if (x > 0) {
if (x < 10) {
x++;
} else {
x--;
}
} else {
x--;
}
x > 0 ? (x < 10 ? x++ : x--) : x--;
複製代碼
使用狀況:code
語法:cdn
switch(表達式){
case 值1:
表達式的值和 值1匹配上了,須要執行的代碼;
break;
case 值2:
表達式的值和 值2匹配上了,須要執行的代碼;
break;
default:
若是表達式的值和以上的case後面的值都沒有匹配上,那麼就執行這裏的代碼。
break;
}
複製代碼
侷限:blog
注意:ip
let x = '10';
switch (x) {
case 1: //=>在x等於1的狀況下作什麼
x += 1;
break; //=>每一種狀況結束都要設置break(以供當此條件成立並處理完事情後,通知代碼不在向下執行)
case 5:
x += 2;
break;
case 10: //=>'10'===10 FALSE
x += 3;
break;
default: //=>等價於else,並且最後一個判斷結束無需設置break
x += 4;
}
console.log(x); //=>'104' 每一種case狀況都是基於 === 進行比較的(嚴格比較,須要保證數據類型的一致)
複製代碼
Object.is
ES6規範中新增的方式(暫不講解)如圖: