---
# System prepended metadata

title: 比較與邏輯運算子

---

#  比較與邏輯運算子 

## =、 == 、=== 比較差異 
```javascript=
let a = 1;

//一個等於，賦予值的意思

let b = 2;
console.log(a==b);
console.log(a!=b);
//兩個等於，比較運算子
```

```javascript=
let a = 1;
let b = "1";
console.log(a==b);
//兩個等於，協助轉型

console.log(a===b);
//三個等於，會比較，也會判斷型別
//但不會幫忙轉
```

## 邏輯運算子 && (and)、|| (or)

```javascript=
// &&同時滿足條件

let a = 1;
let b = 2;
console.log(a==2 && b==2);
```

```javascript=
// ||滿足其中一個條件

let c = 3;
let d = 4;
console.log(c==3 || d==4);
```

```javascript=
978 && 0
>0

// &&要兩個都是 true，才會是 true ，但 0 是 false，所以就回傳了 0 。
```
 
:::warning
補充一下有什麼東西算 falsy家族 ，0 、 -0 、 null 、 false 、 Nan 、 undefined 、 空字串("")。其餘的都是 Truthy 家族。
:::


## 邏輯運算子範例情境

```javascript=
// &&練習
//符合贈禮條件
//必須同時符合以下兩個條件才贈禮
//必須滿500(含)
//必須是VIP

let rice = true;
let cost =600;

console.log(cost>=500 && isVip==true);
```

```javascript=
// &&練習
// 小孩吃東西
// 只要冰箱有米粒或蘋果任一個，小孩就願意進食


let haveRice = true;
let haveApple = false;

console.log(haveRice==true || haveApple==false);
```