iT邦幫忙

0

JS學習紀錄-04-比較運算子/邏輯運算子

  • 分享至 

  • xImage
  •  

嗨嗨~我是914 今天要來學習比較運算子、邏輯運算子GOGOGO

先來閒聊一下(有人想看?)
又來到五月重要的節日辣
母~親~節~
媽媽真的是非常辛苦的角色(爸爸想說:我呢?)
祝大家母親節快樂辣!
不曉得大家母親節有沒有要去哪玩呢?
明天要跟太后娘娘去內灣老街走走
今天要趕快來學習了 :)

還有為甚麼在地震辣!!!!!!
哭哭哭哭哭~超怕(超貪生怕死的辣0.0)


今天來看看比較運算子(===、==、!=、>、<、>=、<=)、邏輯運算子(&&、||、!)

比較運算子(===、==、!=、>、<、>=、<=)
綜合舉例

console.log(3>2)//true
console.log(4<1)//false
console.log(36.3>=37.5)//false
console.log(37.5>=37.5)//true
console.log("hello"=="hi")//false
console.log(1 != 2)//true 

比較運算子也能互相比較

let k =2 > 1;
console.log(k);//true
let isWakeup = false;
console.log(isWakeUp)//false

我們來看一下各個比較運算子
我的天QQ 這幾個等於,真的是看到崩潰~
讓我3秒崩潰一下XD
好!來吧!!

==、===

== 鬆散比較 (loose equality)
比較前,會先強制轉換型別跟值,下面的舉例是因在比較前型別被轉換
而1跟js中的字串"1"是表示不同的值,嚴格來說~是不會相同的。但若使用==會回傳true。

console.log(1 == "1"); // true
console.log(0 == false); // true
console.log(undefined == null); // true

=== 嚴格比較 (strict equality)
不會強制轉換型別與值,所以如果是不同型別,比較兩者會回傳 false。不同值的話一樣會回傳 false。
例外情況: 比較 +0 和 -0時,嚴格比較會回傳 true;以及比較 NaN 和 NaN 會是 false。
而這兩個狀況則是同值比較 Object.is 華麗上場

+0 === -0; // true
NaN === NaN; // false
console.log(5 === 5); // true
console.log(5 === "5"); // false,因為值相同但類型不同der

Object.is 同值比較 (same-value equality)
看看名字,就曉得比較兩個值是不是相等~若遇到===相關的問題,可使用這個同值比較

console.log(Object.is(+0, -0)); // false
console.log(Object.is(NaN, NaN)); // true

!=、!== 不等於
比較兩個值是否不相等。如果兩個值不相等,則返回 true;如果兩個值相等,則返回 false。

let c = 'apple';
let d = 'orange';
let isNotEqual = (c != d); // true
這裡我們使用 != 運算子來比較 c 和 d。
因為它們的值不同 ('apple' != 'orange'),
所以 isNotEqual 的結果為 true

大於等於 (>=)

let r = 8;
let s = 8;
let isGreaterThanOrEqualTo = (r >= s); // true

r 和 s 都是 8。因此 r 等於 s,
所以 isGreaterThanOrEqualTo 的結果為 true。

大於(>)

let p = 7;
let q = 3;
let isGreaterThan = (p > q); // true
在這個例子中,我們比較 p 和 q 的值。因為 7 大於 3,
所以 isGreaterThan 的結果為 true。

小於等於 (<=)

let v = 12;
let w = 12;
let isLessThanOrEqualTo = (v <= w); // true
v 和 w 都是 12,因此 v 等於 w,
所以 isLessThanOrEqualTo 的結果為 true

小於(<)

let t = 5;
let u = 10;
let isLessThan = (t < u); // true

邏輯運算子&&、||、!

&&(邏輯 AND)、||(邏輯 OR)

&& 同時滿足條件
let a = 1;
let b = 2;
console.log(a==2 && b==2);//false
------------------------------------------
|| 滿足其中一個條件
let c = 3;
let d = 4;
console.log(c==4 || d==4);//true

!(邏輯 NOT)

var n1 = !true; // !t 回傳 false
var n2 = !false; // !f 回傳 true

來個實務應用好了~
以下三個條件都要成立,才會回傳true
但我因為沒有買到指定的商品,所以會回傳false
1.消費滿500(含) 2.為VIP 3.買到蛋糕,指定商品

let a = 600;設定買的金額為600元,因為有達到500
let isVip = true;確定是VIP
let buyCake = false;沒有買到指定的商品
console.log(a>=500 && isVip ==true && buyCake==true);//false
let a = 600;設定買的金額為600元,因為有達到500
let isVip = true;確定是VIP
let buyCake = true;有買到指定的商品
console.log(a>=500 && isVip ==true && buyCake==true);//true

我是超級新手,若有任何建議或是錯誤的部分,歡迎底下留言唷thanks
我們下篇文章見掰掰~

對自己多用點心,日益努力,而後風生水起。盡情玩耍,盡情學習,盡情熱愛,盡情討厭,在需要的時候釋放善意,在必要的時候展現強硬,把這不得不過完的一生,變成值得慶賀的一生。


參考資料
https://www.explainthis.io/zh-hant/swe/js-equality
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Equality_comparisons_and_sameness
https://ithelp.ithome.com.tw/m/articles/10235291
智慧的結晶chatgpt


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

1 則留言

1
yji35j4
iT邦新手 5 級 ‧ 2024-05-14 09:50:15

console.log(37.5>=37.5)//false
這個是true唷

謝謝指教唷!!
已改正了!/images/emoticon/emoticon41.gif

我要留言

立即登入留言