ECMAScript 加性運算符

2018-07-02 16:47 更新

在多數(shù)程序設(shè)計語言中,加性運算符(即加號或減號)通常是最簡單的數(shù)學(xué)運算符。

在ECMAScript中,加性運算符有大量的特殊行為。

加法運算符

法運算符由加號(+)表示:

var iResult = 1 + 2

與乘性運算符一樣,在處理特殊值時,ECMAScript中的加法也有一些特殊行為:

  • 某個運算數(shù)是NaN,那么結(jié)果為NaN。
  • -Infinity加-Infinity,結(jié)果為-Infinity。
  • Infinity加-Infinity,結(jié)果為NaN。
  • +0加+0,結(jié)果為+0。
  • -0加+0,結(jié)果為+0。
  • -0加-0,結(jié)果為-0。

不過,如果某個運算數(shù)是字符串,那么采用下列規(guī)則:

  • 如果兩個運算數(shù)都是字符串,把第二個字符串連接到第一個上。
  • 如果只有一個運算數(shù)是字符串,把另一個運算數(shù)轉(zhuǎn)換成字符串,結(jié)果是兩個字符串連接成的字符串。

例如:

var result = 5 + 5;	//兩個數(shù)字
alert(result);		//輸出 "10"
var result2 = 5 + "5";	//一個數(shù)字和一個字符串
alert(result);		//輸出 "55"

這段代碼說明了加法運算符的兩種模式之間的差別。正常情況下,5+5等于10(原始數(shù)值),如上述代碼中前兩行所示。不過,如果把一個運算數(shù)改為字符串"5",那么結(jié)果將變?yōu)?55"(原始的字符串值),因為另一個運算數(shù)也會被轉(zhuǎn)換為字符串。

注意:為了避免JavaScript中的一種常見錯誤,在使用加法運算符時,一定要仔細檢查運算數(shù)的數(shù)據(jù)類型。

減法運算符

減法運算符(-),也是一個常用的運算符:

var iResult = 2 - 1;

與加法運算符一樣,在處理特殊值時,減法運算符也有一些特殊行為:

  • 某個運算數(shù)是NaN,那么結(jié)果為NaN。
  • Infinity減Infinity,結(jié)果為NaN。
  • -Infinity減-Infinity,結(jié)果為NaN。
  • Infinity減-Infinity,結(jié)果為Infinity。
  • -Infinity減Infinity,結(jié)果為-Infinity。
  • +0減+0,結(jié)果為+0。
  • -0減-0,結(jié)果為-0。
  • +0減-0,結(jié)果為+0。
  • 某個運算符不是數(shù)字,那么結(jié)果為NaN。

注釋:如果運算數(shù)都是數(shù)字,那么執(zhí)行常規(guī)的減法運算,并返回結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號