- 15天學會JavaScript(視頻教學版)
- 王金柱
- 2146字
- 2019-12-06 14:00:35
3.1 ECMAScript加性運算符及表達式
ECMAScript語法中將加法(+)和減法(-)運算符統稱為加性運算符,用于執行數值之間的加減算術運算。
3.1.1 加性運算符與表達式概述
關于ECMAScript語法中定義的加性運算符的內容詳見表3-1。
表3-1 ECMAScript加性運算符與表達式

3.1.2 加法運算符及表達式
ECMAScript語法中規定加法運算符使用符號“+”來表示,加法(+)運算符除了可以進行正常的數值運算外,還支持對類似“NaN”和“Infinity”特殊值的運算。此外,加法(+)運算符還可以用于字符串的連接操作。
下面,來看一個應用ECMAScript加法(+)運算符的代碼示例(詳見源代碼ch03目錄中ch03-js-operator-add.html文件)。
【代碼3-1】
01 <script type="text/javascript"> 02 var i = 1; 03 var j = 2; 04 var sum = i + j; 05 console.log("1 + 2 = " + sum); 06 var p = NaN; 07 var q = 123; 08 var sumNaN = p + q; 09 console.log("NaN + 123 = " + sumNaN); 10 var x = Infinity; 11 var y = 321; 12 var sumInfinity = x + y; 13 console.log("Infinity + 123 = " + sumInfinity); 14 var sumX = Infinity + Infinity; 15 console.log("Infinity + Infinity = " + sumX); 16 var sumY = -Infinity + -Infinity; 17 console.log("-Infinity + -Infinity = " + sumY); 18 var sumZ = -Infinity + Infinity; 19 console.log("-Infinity + Infinity = " + sumZ); 20 </script>
關于【代碼3-1】的分析如下:
第02~05行代碼定義了兩個變量(i和j),并通過加法運算符(+)進行了算術運算。其中,在第04行代碼中就是通過加法運算符(+)將變量(i)和變量(j)進行算術相加運算;
第06~09行代碼通過加法運算符(+)對特殊值(NaN)進行了算術運算。其中,第06行代碼定義變量(p),并初始化賦值為特殊值(NaN);第08行代碼嘗試將變量(p)與一個具體數值進行算數相加運算,并將結果保存在變量(sumNaN)中;
第10~13行代碼通過加法運算符(+)對特殊值(Infinity)進行了算術運算。其中,第10行代碼定義了變量(x),并初始化賦值為特殊值(Infinity);第12行代碼嘗試將變量(x)與一個具體數值進行算數相加運算,并將結果保存在變量(sumInfinity)中;
第14~15行代碼通過加法運算符(+)對特殊值(Infinity)和特殊值(Infinity)進行算術運算,并將結果保存在變量(sumX)中;
第16~17行代碼通過加法運算符(+)對特殊值(-Infinity)和特殊值(-Infinity)進行了算術運算,并將結果保存在變量(sumY)中;
第18~19行代碼通過加法運算符(+)對特殊值(-Infinity)和特殊值(Infinity)進行了算術運算,并將結果保存在變量(sumZ)中。
頁面效果如圖3.1所示。從第09行代碼的輸出結果來看,特殊值(NaN)與數值相加后的結果仍為(NaN);從第13行代碼的輸出結果來看,特殊值(Infinity)與數值相加后的結果也仍為(Infinity)。

圖3.1 ECMAScript加法運算符(+)
另外,特殊值(Infinity)和特殊值(Infinity)相加后,結果仍為特殊值(Infinity);特殊值(-Infinity)和特殊值(-Infinity)相加后,結果仍為特殊值(-Infinity);而特殊值(-Infinity)和特殊值(Infinity)相加后,結果變化為特殊值(NaN),表示不是一個有效數值。
下面,再看一個應用ECMAScript加法(+)運算符進行字符串連接操作的代碼示例(詳見源代碼ch03目錄中ch03-js-operator-add-str.html文件)。
【代碼3-2】
01 <script type="text/javascript"> 02 var strA = "Hello"; 03 var strB = "EcmaScript"; 04 console.log(strA + " " + strB + "!"); 05 var i = 1; 06 var strN = "8"; 07 console.log(i + strN); 08 console.log(strN + i); 09 </script>
頁面效果如圖3.2所示。從第04行代碼的輸出結果來看,加法運算符(+)也可以用于字符串連接操作;從第07和08行代碼的輸出結果來看,對字符串與數值使用加法運算符(+)進行連接操作時,數值類型會被轉換為字符串類型,然后進行字符串連接操作。即使字符串為數值類的字符串(如第06行代碼定義的變量),也不會與數值進行算術運算,這一點需要設計人員加以重視。

圖3.2 ECMAScript加法運算符(+)連接字符串
3.1.3 減法運算符及表達式
ECMAScript語法中規定減法運算符使用符號“-”來表示,減法(-)運算符除了可以進行正常的數值運算外,還支持對類似“NaN”和“Infinity”特殊值的運算。
下面,來看一個應用ECMAScript減法(-)運算符的代碼示例(詳見源代碼ch03目錄中ch03-js-operator-minus.html文件)。
【代碼3-3】
01 <script type="text/javascript"> 02 var i = 2; 03 var j = 1; 04 var minusNumA = i - j; 05 console.log("2 - 1 = " + minusNumA); 06 var minusNumB = i.toString() - j; 07 console.log('"2" - 1 = ' + minusNumB); 08 var minusStr = "EcmaScript" - 123; 09 console.log('"EcmaScript" - 123 = ' + minusStr); 10 var p = NaN; 11 var q = 123; 12 var minusNaNA = p - q; 13 console.log("NaN - 123 = " + minusNaNA); 14 var minusNaNB = q - p; 15 console.log("123 - NaN = " + minusNaNB); 16 var x = Infinity; 17 var y = 321; 18 var minusInfinityA = x - y; 19 console.log("Infinity - 321 = " + minusInfinityA); 20 var minusInfinityB = y - x; 21 console.log("321 - Infinity = " + minusInfinityB); 22 var minusA = Infinity - Infinity; 23 console.log("Infinity - Infinity = " + minusA); 24 var minusB = -Infinity - -Infinity; 25 console.log("-Infinity - -Infinity = " + minusB); 26 var minusC = -Infinity - Infinity; 27 console.log("-Infinity - Infinity = " + minusC); 28 var minusD = Infinity - -Infinity; 29 console.log("Infinity - -Infinity = " + minusD); 30 </script>
關于【代碼3-3】的分析如下:
第02~05行代碼定義了兩個變量(i和j),并通過減法運算符(-)進行了算術運算。其中,在第04行代碼中就是通過減法運算符(-)將變量(i)和變量(j)進行算術相減運算;
第06~07行代碼在第02~05行代碼的基礎上做了一點小變動,先將變量(i)轉換為字符串類型,再通過減法運算符(-)與變量(j)進行算術相減運算;
第08~09行代碼通過減法運算符(-)對一個字符串("ECMAScript")和數值(123)進行相減運算;
第10~15行代碼通過減法運算符(-)對特殊值(NaN)進行了算術運算。其中,第10行代碼定義了變量(p),并初始化賦值為特殊值(NaN);第12行和第14行代碼分別嘗試將變量(p)與一個具體數值進行減法運算;
第16~21行代碼通過減法運算符(-)對特殊值(Infinity)進行了算術運算;其中,第16行代碼定義了變量(x),并初始化賦值為特殊值(Infinity);第18行和第20行代碼分別嘗試將變量(x)與一個具體數值進行減法運算;
第22~23行代碼通過減法運算符(-)對特殊值(Infinity)和特殊值(Infinity)進行了算術運算;
第24~25行代碼通過減法運算符(-)對特殊值(-Infinity)和特殊值(-Infinity)進行了算術運算;
第26~27行代碼通過減法運算符(-)對特殊值(-Infinity)和特殊值(Infinity)進行了算術運算;
第28~29行代碼通過減法運算符(-)對特殊值(Infinity)和特殊值(-Infinity)進行了算術運算。
頁面效果如圖3.3所示。

圖3.3 ECMAScript減法運算符(-)
- Reporting with Visual Studio and Crystal Reports
- C語言程序設計習題解析與上機指導(第4版)
- Java完全自學教程
- Mastering Selenium WebDriver
- INSTANT FreeMarker Starter
- Dependency Injection in .NET Core 2.0
- Web Development with Django Cookbook
- PHP+MySQL網站開發技術項目式教程(第2版)
- 青少年Python編程入門
- Oracle 18c 必須掌握的新特性:管理與實戰
- WordPress 4.0 Site Blueprints(Second Edition)
- Creating Stunning Dashboards with QlikView
- 愛上micro:bit
- IBM RUP參考與認證指南
- 數據庫技術及應用教程上機指導與習題(第2版)