本文隻介紹算數操作符,如果講全部操作符,篇幅會很長,後面我們在講其他的操作符。
1 算數操作符
+、-、*、/、 %我們歸為算數操作符(二進制算數),這幾個是最簡單的操作符。
1.1 +(加)
加法操作符(+)用于求兩個數的和。
let result = 1 + 2 + 3;
這裡不多說,如果兩個操作數都是數字,那就是相加,如果有一方是字元串,那就是兩個操作數拼接。遵循如下規則
- 如果有任一操作數是 NaN,則傳回 NaN;
- 如果兩個操作數都是字元串,則将第二個字元串拼接到第一個字元串後面;
- 如果隻有一個操作數是字元串,則将另一個操作數轉換為字元串,再将兩個字元串拼接在一起。
1.2 -(減)
減法操作符(-)也是使用很頻繁的一種操作符
let result = 2 - 1 - 1;
- 如果兩個操作數都是數值,則執行數學減法運算并傳回結果。
- 如果有任一操作數是 NaN,則傳回 NaN。
- 如果有任一操作數是字元串、布爾值、null 或 undefined,則先在背景使用 Number()将其轉換為數值,然後再根據前面的規則執行數學運算。如果轉換結果是 NaN,則減法計算的結果是NaN。
- 如果有任一操作數是對象,則調用其 valueOf()方法取得表示它的數值。如果該值是 NaN,則減法計算的結果是 NaN。如果對象沒有 valueOf()方法,則調用其 toString()方法,然後再将得到的字元串轉換為數值。
1.3 *(乘)
乘法操作符由一個星号(*)表示,可以用于計算兩個數值的乘積。
let result = 11 * 22;
執行數學乘法,但是有一些特殊情況,
- 如果有任一操作數是 NaN,則傳回 NaN
- 如果有不是數值的操作數,則先在背景用 Number()将其轉換為數值,然後再操作。
1.4 /(除)
除法操作符由一個斜杠(/)表示,用于計算第一個操作數除以第二個操作數的商。
let result = 90 / 10;
和乘法一樣,也會有特殊情況
- 如果有任一操作數是 NaN,則傳回 NaN
- 如果是 0 除以 0,則傳回 NaN。
- 如果有不是數值的操作數,則先在背景用 Number()函數将其轉換為數值,然後再操作。
1.5 %(取模)
百分比符号(%)表示,取餘數。
let result = 101 % 10;
上面result結果等于1。
2 遞增和遞減
2.1 遞增
var age = 29;
++age;
//相當于
var age = 29;
age = age + 1;
遞增++運算符對其操作數進行增量(加1)操作。
2.2 遞減
var age = 29;
--age;
//相當于
var age = 29;
age = age - 1;
遞增--運算符對其操作數進行增量(減1)操作。
這裡面有個小知識點,a++和++a有什麼差別?
let a = 1
let c = a++
let b = 1
let d = ++b
console.log(a)
console.log(b)
console.log(c)
console.log(d)