---
# System prepended metadata

title: 【Day7】算術運算子、比較運算子
tags: [JavaScript, 14th鐵人賽]

---

# 【Day7】算術運算子、比較運算子
###### tags: `JavaScript` `14th鐵人賽`
這篇文章會說到JavaScript的運算式及運算子，今天先簡單介紹兩種：

- 算術運算子
- 比較運算子
---

## 算術運算子

在JavaScript中算術運算子也是我們所熟悉的四則運算(加、減、乘、除)，算是非常單純的運算子

，在一些程式語言中也是非常常見的。

| + | 加法 |
| --- | --- |
| - | 減法 |
| * | 乘法 |
| / | 除法 |
| % | 餘數 |
| ** | 指數 |
| ++ | 將運算元加 1 |
| --  | 將運算元減 1 |

```jsx
//以最基礎的四則運算做舉例
(1+99)/2 //50
```

上方舉例為數字加上數字，那如果數字加上字串，會有什麼結果呢?

```jsx
1+"100" // 1100
```

當運算時發現其中一方為字串，將會進行「自動轉型」為字串後連接在一起

若遇到特殊數字時，會有什麼結果呢？

```jsx
Infinity + Infinity //Infinity
-Infinity + -Infinity //-Infinity
-Infinity + Infinity //NaN
```

而在運算式中若其中一者為NaN，結果將會得到NaN

```jsx
99+NaN // NaN
```

若運算式中遇到基本型別ex:布林、undefined、null時JavaScript將會將其轉為number，再進行運算

```jsx
1+true // 2 運算中true被作為1
1+false // 1 運算中false被作為0
1+undefined // NaN 無法轉為數值
1+null // null為0
```

## 比較運算子

用以比較兩側的值，可比較純值、物件、運算式……等，比較後基於比較的結果回傳邏輯值true或false。

| < | 少於 |
| --- | --- |
| > | 大於 |
| <= | 小於等於 |
| >= | 大於等於 |
| == | 等於 |
| === | 嚴格的等於 |
| != | 不等於 |
| !== | 嚴格的布等於 |

```jsx
2>1 //true
```

### ==、===的差別

二者都是用於判斷兩個值是否相等

- === 不會替數值做自動轉型
- == 會替數值做自動轉型

簡單來說就是==的工作量更大一些，因為如果比較的值的型別不同，他就會進行強制型別轉換。也可以稱作比較寬鬆的比較。