摘要:浮點數運算余數運算符還可以用于浮點數的運算。這些語言中的冪運算符有著比其他的單目運算符如一元或一元更高的優先級。但是作為例外,在中,運算符被設計為比單目運算符優先級更低。
一、算術運算符
運算符 | 描述 | 例子 | x 運算結果 | y 運算結果 |
---|---|---|---|---|
+ | 加法 | x=y+2 | 7 | 5 |
- | 減法 | x=y-2 | 3 | 5 |
* | 乘法 | x=y*2 | 10 | 5 |
/ | 除法 | x=y/2 | 2.5 | 5 |
% | 取模(余數) | x=y%2 | 1 | 5 |
++ | 自增 | x=++y | 6 | 6 |
++ | 自增 | x=y++ | 5 | 6 |
-- | 自減 | x=--y | 4 | 4 |
-- | 自減 | x=y-- | 5 | 4 |
(1)數值求和
(2)字符串拼接
2.2 示例(1)布爾值會自動轉換為 數值,false 轉換為 0,true 轉換為 1,然后再相加。
2.3 重載加法運算符是在運行時決定,到底是執行相加,還是執行連接。也就是說,運算子的不同,導致了不同的語法行為,這種現象稱為“重載”(overload)。
由于加法運算符存在重載,可能執行兩種運算,使用的時候必須很小心。
上面代碼中,由于從左到右的運算次序,字符串的位置不同會導致不同的結果。
除了加法運算符,其他算術運算符(比如減法、除法和乘法)都不會發生重載。他們的規則是 所有運算子一律轉為數值,再進行相應的數學運算。
上面代碼中,減法、除法和乘法運算符,都是將字符串自動轉為數值,然后再運算。
2.4 對象的加法(1)如果運算子是對象,必須先轉成原始類型的值,然后再相加。
(2)轉換規則
首先,調用對象的 valueOf() 方法,返回對象自身,再調用對象的 toString() 方法,將其轉為字符串(原始類型)。
2.5 特殊行為(1)某個運算數是 NaN,那么結果為 NaN。
(2)-Infinity 加 -Infinity,結果為 -Infinity。
(3)Infinity 加 -Infinity,結果為 NaN。
(4)+0 加 +0,結果為 +0。
(5)-0 加 +0,結果為 +0。
(6)-0 加 -0,結果為 -0。
(7)任何數據類型 + 字符串 = 字符串
(8)若數值求和,undefined 轉換為 NaN,null 轉換為 0
(9)若字符串拼接,undefined 轉換為 "undefined",null 轉換為 "null",false 轉換為 "false",true 轉換為 "true"
三、減法 (-) 3.1 特殊行為(1)某個運算數是 NaN,那么結果為 NaN。
(2)Infinity 減 Infinity,結果為 NaN。
(3)-Infinity 減 -Infinity,結果為 NaN。
(4)Infinity 減 -Infinity,結果為 Infinity。
(5)-Infinity 減 Infinity,結果為 -Infinity。
(6)+0 減 +0,結果為 +0。
(7)-0 減 -0,結果為 -0。
(8)+0 減 -0,結果為 +0。
(9)某個運算符不是數字,那么結果為 NaN。
(10)undefined 轉換為 NaN,null 轉換為 0
四、乘法 (*) 4.1 特殊行為(1)如果結果太大或太小,那么生成的結果是 Infinity 或 -Infinity。
(2)如果某個運算數是 NaN,結果為 NaN。
(3)Infinity 乘以 0,結果為 NaN。
(4)Infinity 乘以 0 以外的任何數字,結果為 Infinity 或 -Infinity。
(5)Infinity 乘以 Infinity,結果為 Infinity。
五、除法 (/) 5.1 特殊行為(1)如果結果太大或太小,那么生成的結果是 Infinity 或 -Infinity。
(2)如果某個運算數是 NaN,結果為 NaN。
(3)Infinity 被 Infinity 除,結果為 NaN。
(4)Infinity 被任何數字除,結果為 Infinity。
(5)0 除一個任何非無窮大的數字,結果為 NaN。
(6)Infinity 被 0 以外的任何數字除,結果為 Infinity 或 -Infinity。
六、求余 (%)求余運算符返回第一個操作數對第二個操作數的模,即 var1 對 var2 取模,其中 var1 和 var2 是變量。取模功能就是 var1 除以 var2 的 整型余數。6.1 示例
求余運算符(%)返回前一個運算子 被 后一個運算子 除,所得的 余數。
6.2 注意運算結果的正負號由 第一個運算子 的 正負號 決定。
6.3 絕對值函數為了得到 負數 的正確余數值,可以先使用絕對值函數。
6.4 浮點數運算余數運算符還可以用于浮點數的運算。但是,由于浮點數 不是精確的值,無法得到完全準確的結果。
6.5 特殊行為(1)如果被除數是 Infinity,或除數是 0,結果為 NaN。
(2)Infinity 被 Infinity 除,結果為 NaN。
(3)如果除數是無窮大的數,結果為被除數。
(4)如果被除數為 0,結果為 0。
七、冪 (**)冪運算符返回第一個操作數做底數,第二個操作數做指數的乘方。即, var1var2 ,其中 var1 和 var2 是其兩個操作數。
7.1 語法運算符: var1 ** var27.2 注解
(1)包括 PHP 或 Python 等的大多數語言中,都包含冪運算符(一般來說符號是 ^ 或者 **)。這些語言中的冪運算符有著比其他的單目運算符(如一元 + 或一元 - )更高的優先級。但是作為例外,在 Bash 中,** 運算符被設計為比單目運算符優先級更低。
(2)在最新的 JavaScript(ES2016) 中,禁止使用帶歧義的冪運算表達式。比如,底數前不能緊跟一元運算符(+/-/~/!/delete/void/typeof)
7.3 示例(1)如果要反轉求冪表達式結果的符號,你可以采用這樣的方式:
(2)強制求冪表達式的基數為負數:
八、自增 (++)自增運算符為其操作數增加1,返回一個數值。8.1 后置和前置
(1)如果后置(postfix)使用,即運算符位于操作數的后面(如 x++),那么將會在自增前返回數值。
(2)如果前置(prefix)使用,即運算符位于操作數的前面(如 ++x),那么將會在自增后返回數值。
8.2 示例 8.3 練習 九、自減 (--)自減運算符將其操作數減去1,并返回一個數值。9.1 后置和前置
(1)如果后置使用(如 x--),則在自減前返回數值。
(2)如果前置使用(如 --x),則在自減后返回數值。
9.2 示例閱讀更多
參考文章 JavaScript 標準參考教程(alpha)運算符
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93849.html
摘要:除法大前端數字類型與字符串除法運算,同樣會先將字符串轉為數字類型再做算術運算,同樣與布爾類型做算術運算,也是先把布爾類型轉換為數字類型再做算術運算,但是遇到字符串里包含有英文或者中文將會得到結果。 算數運算符 包含+、-、*、/、%,下面通過代碼示例來給大家進行演示一下;加法: var num=100; var str1=大前端; var str2=300; var boo=true;...
摘要:類型轉換法則這里討論里對不同類型進行運算的時候,是如何做類型轉換的一般是隱式轉換。轉化過程先查看對象的方法是否返回基本類型。結果轉為返回字符串。引用類型需先轉換為基本類型。后記不同類型之間的類型轉換,確實是讓人撓頭的語言。 Javascript為什么會有類型轉換 Javascirpt世界里,不推薦大量的使用try...catch...,我想大概原因: JS里任何類型之間的算數運算,邏...
摘要:代碼示例等號檢查,類型轉換后返回全等檢查,由于時類型,時類型,類型不同,返回關系運算符關系運算符執行的是比較運算,通常用于判斷兩個變量哪個大哪個小關系運算符都返回一個布爾值。邏輯或運輸符用雙豎線表示。 1.運算符 JavaScript中常見的運算符包含:賦值運算符、算數運算符、等性運算符、關系運算符、條件運算符、布爾運算符、邏輯運算符…… 1.賦值運算符 = 賦值運算符=,用于給某個變...
摘要:運算符運算符一共分為六種算數運算符比較運算符邏輯運算符賦值運算符字符串聯接運算符條件運算符運算符的概念提供的一組用于操作數據值的運算符操作符。這些運算符可以按照作用的不同或者操作變量數量的不同進行分類。 運算符 ——運算符一共分為六種;1.算數運算符2.比較運算符3.邏輯運算符4.賦值運算符5.字符串聯接運算符6.條件運算符——運算符的概念;JavaScript提供的一組用于操作數據值...
摘要:賦值運算符賦值擴展運算符就是賦值運算符和算數之間配合使用,也是一種簡寫形式等價寫法賦值擴展運算符性能要比賦值運算符更高五。 運算符一。算數運算符1.算數運算符; 運算中一個或二個是字符串,js會自動轉換為數字,來計算,最后結果是為NaN 任何一個和NaN計算后都是結果都是NaN 布爾值false和true都會轉換為0和1來計算 var num = 100; var str1 = 愛新覺...
閱讀 1379·2023-04-25 18:34
閱讀 3437·2021-11-19 09:40
閱讀 2824·2021-11-17 09:33
閱讀 2935·2021-11-12 10:36
閱讀 2823·2021-09-26 09:55
閱讀 2653·2021-08-05 10:03
閱讀 2512·2019-08-30 15:54
閱讀 2861·2019-08-30 15:54