ECMAScript 加性運算符
在多數(shù)程序設計語言中,加性運算符(即加號或減號)通常是最簡單的數(shù)學運算符。
在 ECMAScript 中,加性運算符有大量的特殊行為。
加法運算符
法運算符由加號(+)表示:
var iResult = 1 + 2
與乘性運算符一樣,在處理特殊值時,ECMAScript 中的加法也有一些特殊行為:
- 某個運算數(shù)是 NaN,那么結果為 NaN。
- -Infinity 加 -Infinity,結果為 -Infinity。
- Infinity 加 -Infinity,結果為 NaN。
- +0 加 +0,結果為 +0。
- -0 加 +0,結果為 +0。
- -0 加 -0,結果為 -0。
不過,如果某個運算數(shù)是字符串,那么采用下列規(guī)則:
- 如果兩個運算數(shù)都是字符串,把第二個字符串連接到第一個上。
- 如果只有一個運算數(shù)是字符串,把另一個運算數(shù)轉換成字符串,結果是兩個字符串連接成的字符串。
例如:
var result = 5 + 5; //兩個數(shù)字 alert(result); //輸出 "10" var result2 = 5 + "5"; //一個數(shù)字和一個字符串 alert(result); //輸出 "55"
這段代碼說明了加法運算符的兩種模式之間的差別。正常情況下,5+5 等于 10(原始數(shù)值),如上述代碼中前兩行所示。不過,如果把一個運算數(shù)改為字符串 "5",那么結果將變?yōu)?"55"(原始的字符串值),因為另一個運算數(shù)也會被轉換為字符串。
注意:為了避免 JavaScript 中的一種常見錯誤,在使用加法運算符時,一定要仔細檢查運算數(shù)的數(shù)據類型。
減法運算符
減法運算符(-),也是一個常用的運算符:
var iResult = 2 - 1;
與加法運算符一樣,在處理特殊值時,減法運算符也有一些特殊行為:
- 某個運算數(shù)是 NaN,那么結果為 NaN。
- Infinity 減 Infinity,結果為 NaN。
- -Infinity 減 -Infinity,結果為 NaN。
- Infinity 減 -Infinity,結果為 Infinity。
- -Infinity 減 Infinity,結果為 -Infinity。
- +0 減 +0,結果為 +0。
- -0 減 -0,結果為 -0。
- +0 減 -0,結果為 +0。
- 某個運算符不是數(shù)字,那么結果為 NaN。
注釋:如果運算數(shù)都是數(shù)字,那么執(zhí)行常規(guī)的減法運算,并返回結果。