一、條件判斷
JavaScript 中有三種方法可以用來進行條件判斷:
1、使用 if-else 陳述句,這種方法用于在特定條件為 true 時執行一段代碼,否則執行另一段代碼,例如:
let a = 5;
if (a > 10) {
console.log("a is greater than 10");
} else {
console.log("a is not greater than 10");
}
2、使用 switch 陳述句,這種方法用于在多個條件之間做出選擇,并在符合特定條件時執行相應的代碼塊,例如:
let b = "red";
switch (b) {
case "red":
console.log("The color is red");
break;
case "blue":
console.log("The color is blue");
break;
default:
console.log("The color is neither red nor blue");
}
3、使用三元運算子 ( ? : ),這種方法用于在特定條件為 true 時回傳一個值,否則回傳另一個值,例如:
let c = 5;
let d = (c > 10) ? "c is greater than 10" : "c is not greater than 10";
console.log(d);
在 JavaScript 中 三元運算子和 if-else 陳述句的功能是類似的,但是三元運算子的語法更簡潔,適用于比較簡單的條件判斷,
二、比較運算
1、使用關系運算子(>,<,>=,<=,==,!=,===,!==),這些運算子可以比較兩個資料,并回傳一個布林值(true 或 false),例如:
- == 比較運算子會在比較兩個變數值時自動進行型別轉換,例如:
let a = 5;
let b = "5";
console.log(a == b); // true
- === 比較運算子不會進行型別轉換,它會比較兩個變數值和型別是否相同,例如:
let a = 5;
let b = "5";
console.log(a === b); // false
- != 比較運算子會在比較兩個變數值時自動進行型別轉換,如果值不相等回傳 true,例如:
let a = 5;
let b = "5";
console.log(a != b); // false
- !== 比較運算子不會進行型別轉換,它會比較兩個變數值和型別是否不同,例如:
let a = 5;
let b = "5";
console.log(a !== b); // true
通常建議使用 === 和 !== 比較運算子,因為它們不會進行型別轉換,可以避免一些錯誤,
- >,<,>=,<= 比較運算子用于比較兩個變數的大小關系,如果符合條件回傳 true,例如:
let a = 5;
let b = 10;
console.log(a > b); // false
console.log(a < b); // true
console.log(a >= b); // false
console.log(a <= b); // true
2、使用 Object.is() 方法,這個方法可以用來確定兩個值是否相等,并回傳一個布林值(true 或 false),例如:
let c = 5;
let d = "5";
console.log(Object.is(c, d)); // false
注意:與 == 的不同之處是,== 會嘗試轉換資料型別,而 Object.is() 不會,
3、使用 JSON.stringify() 方法將陣列或物件轉換為字串,然后使用關系運算子或 Object.is() 方法來比較字串,例如:
let e = [1, 2, 3];
let f = [1, 2, 3];
console.log(JSON.stringify(e) === JSON.stringify(f)); // true
4、使用第三方庫 lodash 的 isEqual() 方法,這個方法可以用來深度比較兩個陣列或物件,并回傳一個布林值(true 或 false),例如:
let g = {a: 1, b: 2};
let h = {b: 2, a: 1};
console.log(_.isEqual(g, h)); // true
5、使用第三方庫 Ramda 的 equals() 方法,具有與 lodash 的 isEqual() 方法類似的功能,
注意:上面提到的 JSON.stringify() 和 lodash/Ramda 的方法都是深比較,這意味著它們將遞回比較整個陣列或物件的所有屬性,
6、instanceof: 用于判斷一個物件是否是某個建構式的實體,
let obj = new Object();
console.log(obj instanceof Object); // true
console.log(obj instanceof Array); // false
7、in: 用于判斷一個物件是否有某個屬性,
let obj = {a:1,b:2};
console.log("a" in obj); // true
console.log("c" in obj); // false
這些運算子的結果也是一個布林值,可以在條件判斷中使用,
注意:在使用 instanceof 和 in 時要注意物件型別和作用域的問題,
出處:http://www.cnblogs.com/yuzhihui/ 宣告:歡迎任何形式的轉載,但請務必注明出處!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/542556.html
標籤:JavaScript
