逗號運算子顧名思義就是使用逗號「,」,主要的工作是來分隔運算式並循序執行,最後回傳最後一個運算式的值。如果說一個運算式中,有包含很多其他運算式,也可以用逗號隔開。讓我們來看以下範例:
for迴圈
fot(i = 0, j = 5; i < 10; i++, j++){
k = i + j;
}
宣告變數
var a = 10;
var b = 5;
//----------我是分隔線----------
var a = 10, b = 5;
//透過逗號運算子,可以同時宣告多組變數,且給予預設值。
但是如果不知道逗號運算子的朋友,可能會這樣子寫:
var a = b = 10;
console.log(a); //10
console.log(b); //10
看起來好像沒什麼問題,但背後可能跟你想像中的不一樣,其實他是長這樣子的:
b = 10;
var a = b;
一開始的b是沒有var 宣告的。那b就會變成「全域變數」。那什麼是「全域變數」,這我們在之後的的篇章會介紹。
對於初學者來說邏輯運算子,還蠻難理解的。主要分為三個:
「AND &&」:在多數程式語言中,當兩側的值同時為true,則會得到true的結果;若其中一方為false,則得到false。
「OR ||」:在多數程式語言中,只要一方為true,則會得到true的結果;若兩側皆為為false,才得到false。
「NOT!」:以一個驚嘆號表示,原本是true經過!會轉為false,而false 經過!轉為true。
在JavaScript中,透過&& 或||所產生的值不一定是boolean,而是兩者其中之一。讓我們直接來看範例:
var a = 10;
var b = "wow";
var c = undefined;
var d = null;
console.log(a && b); //"wow"
console.log(a || b); //10
console.log(c && a); //undefined
console.log(c || b); //"wow"
console.log(c || a); //10
console.log(c && d); //undefined
console.log(c || d); //null
為什麼會有這樣子的結果呢?它的規則是這樣子的:
在判斷的時候會由左至右檢查,首先先確定是不是boolean型別,如果不是,那就會透過ToBoolean轉型成對應的true或false。
對&&運算子來說,若第一個數值轉為true,則會回傳第二個數值,如果第一個數值是false,則回傳第一個數值。
對||運算子來說,若第一個數值轉為true,則會回傳第一個數值,如果第一個數值是false,則回傳第二個數值。
如果瞭解這些規則之後再來看一次上面的範例,應該是沒什麼問題了。
以上就是今天的介紹,明天見!