# 【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 ``` ### ==、===的差別 二者都是用於判斷兩個值是否相等 - === 不會替數值做自動轉型 - == 會替數值做自動轉型 簡單來說就是==的工作量更大一些,因為如果比較的值的型別不同,他就會進行強制型別轉換。也可以稱作比較寬鬆的比較。