ECMAScript 加性運(yùn)算符

2018-07-02 16:47 更新

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

在ECMAScript中,加性運(yùn)算符有大量的特殊行為。

加法運(yùn)算符

法運(yùn)算符由加號(hào)(+)表示:

var iResult = 1 + 2

與乘性運(yùn)算符一樣,在處理特殊值時(shí),ECMAScript中的加法也有一些特殊行為:

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

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

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

例如:

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

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

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

減法運(yùn)算符

減法運(yùn)算符(-),也是一個(gè)常用的運(yùn)算符:

var iResult = 2 - 1;

與加法運(yùn)算符一樣,在處理特殊值時(shí),減法運(yùn)算符也有一些特殊行為:

  • 某個(gè)運(yùn)算數(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。
  • 某個(gè)運(yùn)算符不是數(shù)字,那么結(jié)果為NaN。

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)