iT邦幫忙

1

JavaScript 基礎知識-比較運算子 == , !==

在生活中我們常常都需要做判斷,例如肚子飢餓的程度,假設滿分是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 ,所以這是較嚴謹的比較模式

之後再陸續介紹其他的比較運算子 /images/emoticon/emoticon01.gif


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
小魚
iT邦大師 1 級 ‧ 2019-04-11 23:09:17

我js比較少在用,
所以js只有 !== 沒有 != 嗎?

看更多先前的回應...收起先前的回應...

哈囉,謝謝你的提醒
JS 也是有 != 的
!== 是較為嚴謹的模式跟 === 是一樣的,也會比較資料型別
感謝指正喔 /images/emoticon/emoticon07.gif

小魚 iT邦大師 1 級 ‧ 2019-04-12 01:32:04 檢舉

所以可以這樣說
1 == '1' -> true
1 === '1' -> false
1 != '1' -> false
1 !== '1' -> true
是這樣吧

小魚 iT邦大師 1 級 ‧ 2019-04-12 09:26:27 檢舉

測試的結果確實如此...

是的,沒錯喔 /images/emoticon/emoticon12.gif

0
米歐
iT邦新手 3 級 ‧ 2019-04-12 17:11:08

首先先謝謝大大的分享。
我覺得文章可以用 ==!= 做比較後,再 ===!== 做比較。
不然一個嚴謹模式(!==)跟非嚴謹模式(==)相比感覺怪怪的。

好的,這部分沒有注意到
突然忘記有 !=
不過還是謝謝你的建議喔

我要留言

立即登入留言