在生活中我們常常都需要做判斷,例如肚子飢餓的程度,假設滿分是10分,若飢餓的程度大約7分,可能只想吃個小東西,若飢餓的程度為5分以下,可能就要吃個便當之類的,大腦會自動幫我們去做判斷。
程式上也是有類似的情境,所以才會有一些用來做判斷的比較運算子,以下就來介紹兩種 ==
(等於) 和 !==
(不等於)
以下範例都可以自行在 console 下做練習,若用數學上來比較的話:
數字5等於數字5,若此時在 console 這樣去做比較的話5 == 5
會回傳 true
數字5等於數字6?5 == 6
此時會回傳 false
,因為5並不等於6
那如果換個說法,數字5不等於數字6?5 !== 6
這時候會回傳 true
,因為5不等於6
小提醒:=
和 ==
,在 JavaScript 的世界裡是不一樣的=
是賦予的意思,例如 var a = 5;
代表 a 這個變數被賦予5這個值,並不是 a 等於5==
才是等於的意思,這是額外補充的小提醒。
我們除了可以用數字做為例子才比較運算之外,布林值也可以用來做比較,例如:true == true
會回傳 true
true == false
會回傳 false
false == false
會回傳 true
另外有一個較為嚴謹的比較模式,就是===
在==
的時候,左右兩邊並不會比較資料型別,而會自動去轉型做比較
例如: 1 == '1'
,數字1等於字串1,這時候會回傳 true
,JavaScript 會自動把字串1先轉型成數字1,再去做比較,轉型的部分比較複雜(這裡就先不多提)
如果在===
的情況下,1 === '1'
,數字1並不會等於字串1,會回傳 false
因為數字跟字串本身就是不一樣的資料型別,所以在比較的時候會先從資料型別去做比較,如果兩邊的資料型別不一樣,則就先回傳 false
,所以這是較嚴謹的比較模式
之後再陸續介紹其他的比較運算子
我js比較少在用,
所以js只有 !== 沒有 != 嗎?
哈囉,謝謝你的提醒
JS 也是有 != 的
!== 是較為嚴謹的模式跟 === 是一樣的,也會比較資料型別
感謝指正喔
所以可以這樣說
1 == '1' -> true
1 === '1' -> false
1 != '1' -> false
1 !== '1' -> true
是這樣吧
測試的結果確實如此...
是的,沒錯喔
首先先謝謝大大的分享。
我覺得文章可以用 ==
與 !=
做比較後,再 ===
與 !==
做比較。
不然一個嚴謹模式(!==
)跟非嚴謹模式(==
)相比感覺怪怪的。
好的,這部分沒有注意到
突然忘記有 !=
不過還是謝謝你的建議喔