在任何編程語言中,進行數學運算和計算是一個非常常見的操作。JavaScript提供了幾個運算子來幫助我們處理數字。
加法 (+)
const three = 1 + 2
const four = three + 1
如果使用字符串,+
運算子也可以用於字符串拼接,所以要注意:
const three = 1 + 2
three + 1 // 4
'three' + 1 // three1
減法 (-)
const two = 4 - 2
除法 (/)
返回第一個運算元和第二個運算元的商:
const result = 20 / 5 //result === 4
const result = 20 / 7 //result === 2.857142857142857
如果除以零,JavaScript 不會引發任何錯誤,而是返回 Infinity
值(如果值為負則返回 -Infinity
):
1 / 0 - //Infinity
1 / 0 //-Infinity
餘數 (%)
餘數在許多情況下都是一個非常有用的計算:
const result = 20 % 5 //result === 0
const result = 20 % 7 //result === 6
除以零的餘數始終為 NaN
,這是一個特殊值,表示“不是數字”:
;(1 % 0) - //NaN
(1 % 0) //NaN
乘法 (*)
乘以兩個數字:
1 \* 2 - //2
1 \* 2 //-2
指數運算 (**)
將第一個運算元的值提升到第二個運算元指定的次方:
1 \*\* 2 //1
2 \*\* 1 //2
2 \*\* 2 //4
2 \*\* 8 //256
8 \*\* 2 //64
指數運算符 **
相當於使用 Math.pow()
,但與其成為一個庫函數不同,它已成為語言的一部分。
Math.pow(4, 2) == 4 \*\* 2
這個特性對於需要進行大量數學計算的JavaScript應用程序來說是一個很好的添加。
**
運算符在許多語言中都有標準化,包括 Python、Ruby、MATLAB、Lua、Perl 等等。
遞增運算子 (++)
增加一個數字。這是一個一元運算子,如果放在數字前面,它返回增加後的值。如果放在數字後面,它返回原始值,然後進行增加。
let x = 0
x++ //0
x //1
++x //2
遞減運算子 (--
)
與遞增運算子類似,但是遞減值。
let x = 0
x-- //0
x //-1
--x //-2
一元否定運算 (-)
返回操作數的否定值:
let x = 2 - x //-2
x //2
一元正運算 (+)
如果操作數不是數字,它會嘗試將其轉換為數字。否則,如果操作數已經是數字,它不做任何操作。
let x = 2 + x //2
x = '2' + x //2
x = '2a' + x //NaN