在javascript中,算術(shù)運算符是用于對數(shù)字(文字或變量)執(zhí)行算術(shù)運算的一種符號,包括有:加法運算符“+”、減法運算符“-”、乘法運算符“*”、除法運算符“/”、求余運算符“%”、數(shù)值取反運算符“-”。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
在javascript中,算術(shù)運算符是用于對數(shù)字(文字或變量)執(zhí)行算術(shù)運算的一種符號;是完成基本的算術(shù)運算 (arithmetic operators) 符號,就是用來處理四則運算的符號。
算術(shù)運算符包括:加+、減-、乘*、除/、求余運算符%、數(shù)值取反運算符-。
運算符 | 描述 | 示例 |
---|---|---|
+ | 加法運算符 | x + y 表示計算 x 加 y 的和 |
– | 減法運算符 | x – y 表示計算 x 減 y 的差 |
* | 乘法運算符 | x * y 表示計算 x 乘 y 的積 |
/ | 除法運算符 | x / y 表示計算 x 除以 y 的商 |
% | 取模(取余)運算符 | x % y 表示計算 x 除以 y 的余數(shù) |
加法運算符
示例1
注意特殊操作數(shù)的求和運算。
var n = 5; //定義并初始化任意一個數(shù)值 console.log(NaN + n); //NaN與任意操作數(shù)相加,結(jié)果都是NaN console.log(Infinity + n); //Infinity與任意操作數(shù)相加,結(jié)果都是Infinity console.log(Infinity + Infinity); //Infinity與Infinity相加,結(jié)果是Infinity console.log((-Infinity) + (-Infinity)); //負Infinity相加,結(jié)果是負Infinity console.log((-Infinity) + Infinity); //正負Infinity相加,結(jié)果是NaN
示例2
加運算符能夠根據(jù)操作數(shù)的數(shù)據(jù)類型,決定是相加操作,還是相連操作。
console.log(1 + 1); //如果操作數(shù)都是數(shù)值,則進行相加運算 console.log(1 + "1"); //如果操作數(shù)中有一個是字符串,則進行相連運算 console.log(3.0 + 4.3 + ""); //先求和,再連接,返回"7.3" console.log(3.0 + "" + 4.3); //先連接,再連接,返回"34.3" //3.0轉(zhuǎn)換為字符串3
在使用加法運算符時,應(yīng)先檢查操作數(shù)的數(shù)據(jù)類型是否符合需要。
減法運算符
示例1
注意特殊操作數(shù)的減法運算。
var n = 5; //定義并初始化任意一個數(shù)值 console.log(NaN - n); //NaN與任意操作數(shù)相減,結(jié)果都是NaN console.log(Infinity - n); //Infinity與任意操作數(shù)相減,結(jié)果都是Infinity console.log(Infinity - Infinity); //Infinity與Infinity相減,結(jié)果是NaN console.log((-Infinity) - (-Infinity)); //負Infinity相減,結(jié)果是NaN console.log((-Infinity) - Infinity); //正負Infinity相減,結(jié)果是-Infinity
示例2
在減法運算中,如果操作數(shù)為字符串,先嘗試把它轉(zhuǎn)換為數(shù)值,再進行運算。如果有一個操作數(shù)不是數(shù)字,則返回 NaN。
console.log(2 - "1"); //返回1 console.log(2 - "a"); //返回NaN
使用值減去 0,可以快速把值轉(zhuǎn)換為數(shù)字。例如 HTTP 請求中查詢字符串一般都是字符串型數(shù)字,可以先把這些參數(shù)值減去 0 轉(zhuǎn)換為數(shù)值。這與調(diào)用 parseFloat() 方法的結(jié)果相同,但減法更高效、快捷。減法運算符的隱性轉(zhuǎn)換如果失敗,則返回 NaN,這與使用 parseFloat() 方法執(zhí)行轉(zhuǎn)換時的返回值是不同的。
例如,對于字符串“100aaa”而言,parseFloat() 方法能夠解析出前面幾個數(shù)字,而對于減法運算符來說,則必須是完整的數(shù)字,才可以進行轉(zhuǎn)換。
console.log(parseFloat("100aaa")); //返回100 console.log("100aaa" - 0); //返回NaN
對于布爾值來說,parseFloat() 方法能夠把 true 轉(zhuǎn)換為 1,把 false 轉(zhuǎn)換為 0,而減法運算符視其為 NaN。
對于對象來說,parseFloat() 方法會嘗試調(diào)用對象的 toString() 方法進行轉(zhuǎn)換,而減法運算符先嘗試調(diào)用對象的 valueOf() 方法進行轉(zhuǎn)換,失敗之后再調(diào)用 toString() 進行轉(zhuǎn)換。
取反運算
取反運算符是一元運算符,也稱一元減法運算符。
示例
注意特殊操作數(shù)的取反運算。
console.log(- 5); //返回-5。正常數(shù)值取負數(shù) console.log(- "5"); //返回-5。先轉(zhuǎn)換字符串數(shù)字為數(shù)值類型 console.log(- "a"); //返回NaN。無法完全匹配運算,返回NaN console.log(- Infinity); //返回-Infinity console.log(- (- Infinity)); //返回Infinity console.log(- NaN); //返回NaN
與一元減法運算符相對應(yīng)的是一元加法運算符,利用它可以快速把一個值轉(zhuǎn)換為數(shù)值。
乘法運算符
注意特殊操作數(shù)的乘法運算。
var n = 5; //定義并初始化任意一個數(shù)值 console.log(NaN * n); //NaN與任意操作數(shù)相乘,結(jié)果都是NaN console.log(Infinity * n); //Infinity與任意非零正數(shù)相乘,結(jié)果都是Infinity console.log(Infinity * (- n)); //Infinity與任意非零負數(shù)相乘,結(jié)果是-Infinity console.log(Infinity * 0); //Infinity與0相乘,結(jié)果是NaN console.log(Infinity * Infinity); //Infinity與Infinity相乘,結(jié)果是Infinity
除法運算符
注意特殊操作數(shù)的除法運算。
var n = 5; //定義并初始化任意一個數(shù)值 console.log(NaN / n); //如果一個操作數(shù)是NaN,結(jié)果都是NaN console.log(Infinity / n); //Infinity被任意數(shù)字除,結(jié)果是Infinity或-Infinity //符號由第二個操作數(shù)的符號決定 console.log(Infinity / Infinity); //返回NaN console.log(n / 0); //0除一個非無窮大的數(shù)字,結(jié)果是Infinity或-Infinity,符號由第二個操作數(shù)的符號決定 console.log(n / -0); //返回-Infinity,解釋同上
求余運算符
求余運算也稱模運算例如:
console.log(3 % 2); //返回余數(shù)1
模運算主要針對整數(shù)進行操作,也適用于浮點數(shù)。例如:
console.log(3.1 % 2.3); //返回余數(shù)0.8000000000000003
示例
注意特殊操作數(shù)的求余運算。
var n = 5; //定義并初始化任意一個數(shù)值 console.log(Infinity % n); //返回NaN console.log(Infinity % Infinity); //返回NaN console.log(n % Infinity); //返回5 console.log(0 % n); //返回0 console.log(0 % Infinity); //返回0 console.log(n % 0); //返回NaN console.log(Infinity % 0); //返回NaN
【