iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
自我挑戰組

純新手學習 JavaScript系列 第 7

新手學習JavaScript: Day07 - 逗號運算子與邏輯運算子

逗號運算子

逗號運算子顧名思義就是使用逗號「,」,主要的工作是來分隔運算式並循序執行,最後回傳最後一個運算式的值。如果說一個運算式中,有包含很多其他運算式,也可以用逗號隔開。讓我們來看以下範例:

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,則回傳第二個數值。

如果瞭解這些規則之後再來看一次上面的範例,應該是沒什麼問題了。

以上就是今天的介紹,明天見!


上一篇
新手學習JavaScript: Day06 - 自動轉型規則與指派運算子
下一篇
新手學習JavaScript: Day08 - 流程判斷
系列文
純新手學習 JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言