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