天天看點

JavaScript操作符之算數操作符

本文隻介紹算數操作符,如果講全部操作符,篇幅會很長,後面我們在講其他的操作符。

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)