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