ECMAScript 乘性操作符(乘法、除法、求模)
乘性操作符
ECMAScript走義了3個(gè)乘性操作符:乘法、除法和求模。這些操作符與Java.C或者Perl中的相應(yīng)操作符用途類似,只不過(guò)在操作數(shù)為非數(shù)值的情況下會(huì)執(zhí)行自動(dòng)的類型轉(zhuǎn)換。如果參與乘法計(jì)算的某個(gè)操作數(shù)不是數(shù)值,后臺(tái)會(huì)先使用Number()轉(zhuǎn)型函數(shù)將其轉(zhuǎn)換為數(shù)值。也就是說(shuō),空字符串將被當(dāng)作0,布爾值true將被當(dāng)作1。
1.乘法
乘法操作符由一個(gè)星號(hào)(*)表示,用于計(jì)算兩個(gè)數(shù)值的乘積。其語(yǔ)法類似于C,如下面的例子所示:
var result=34*56;
在此南昌網(wǎng)站建設(shè)公司前端開發(fā)工程師介紹,在處理特殊值的情況下,乘法操作符所遵循的特殊的規(guī)則:
◎如果操作數(shù)都是數(shù)值,執(zhí)行常規(guī)的乘法計(jì)算,即兩個(gè)正數(shù)或兩個(gè)負(fù)數(shù)相乘的結(jié)果還是正數(shù),而如果只有一個(gè)操作數(shù)有符號(hào),那么結(jié)果就是負(fù)數(shù)。如果乘積超過(guò)了ECMAScript數(shù)值的表示范圍,則返回Infinity或-Infinity;
◎如果有一個(gè)操作數(shù)是NaN,則結(jié)果是NaN;
◎如果是Infinity與0相乘,則結(jié)果是NaN;
◎如果是Infinity與非0數(shù)值相乘,則結(jié)果是Infinity或-Infinity,取決于有符號(hào)操作數(shù)的符號(hào);
◎如果是Infinity與Infinity相乘,則結(jié)果是Infinity;
◎如果有一個(gè)操作數(shù)不是數(shù)值,則在后臺(tái)調(diào)用Number()將其轉(zhuǎn)換為數(shù)值,然后再應(yīng)用上面的規(guī)則。
2.除法
除法操作符由一個(gè)斜線符號(hào)(/)表示,執(zhí)行第二個(gè)操作數(shù)除第一個(gè)操作數(shù)的計(jì)算,如下面的例子所示:
var result = 66 /11; 在此南昌網(wǎng)絡(luò)公司前端開發(fā)工程師介紹,雖然除法與乘法操作符類似,但除法操作符對(duì)特殊的值也有特殊的處理規(guī)則。這些規(guī)則如下:
◎如果操作數(shù)都是數(shù)值,執(zhí)行常規(guī)的除法計(jì)算,即兩個(gè)正數(shù)或兩個(gè)負(fù)數(shù)相除的結(jié)果還是正數(shù),而如果只有一個(gè)操作數(shù)有符號(hào),那么結(jié)果就是負(fù)數(shù)。如果商超過(guò)了ECMAScript教值的表示范圍,則返回Infinity或-Infinity;
◎如果有一個(gè)操作數(shù)是NaN,則結(jié)果是NaN;
◎如果是Infinity被Infinity除,則結(jié)果是NaN;
◎如果是Infinity被任意數(shù)值除,則結(jié)果是Infinity;
◎如果是零被零除,則結(jié)果是NaN;
◎如果是非零的有限數(shù)被零除,則結(jié)果是Infinity或-Infinity,取決于有符號(hào)操作數(shù)的符號(hào);
◎如果是Infinity被任何非零數(shù)值除,則結(jié)果是Infinity或-Infinity,取決于有符號(hào)操作數(shù)的符號(hào);
◎如果有一個(gè)操作數(shù)不是數(shù)值,則在后臺(tái)調(diào)用Number()將其轉(zhuǎn)換為數(shù)值,然后再應(yīng)用上面的規(guī)則。
3.求模
求模(余數(shù))操作符由一個(gè)百分號(hào)(%)表示,用法如下:
var result = 26%5; //等于1 在此南昌網(wǎng)頁(yè)設(shè)計(jì)公司前端開發(fā)工程師總結(jié),求模操作雖然與乘法操作符類似,且與另外兩個(gè)乘性操作符類似,但求模操作符會(huì)遵循下列特殊規(guī)則來(lái)處理特殊的值:
◎如果操作數(shù)都是數(shù)值,執(zhí)行常規(guī)的除法計(jì)算,返回除得的余數(shù);
◎如果被除數(shù)是無(wú)窮大值而除數(shù)是有限大的數(shù)值,則結(jié)果是NaN;
◎如果被除數(shù)是有限大的數(shù)值而除數(shù)是零,則結(jié)果是NaN;
◎如果是Infinity被Infinity除,則結(jié)果是NaN;
◎如果被除數(shù)是有限大的數(shù)值而除數(shù)是無(wú)窮大的教值,則結(jié)果是被除數(shù);
◎如果被除數(shù)是零,則結(jié)果是零;
◎如果有一個(gè)操作數(shù)不是數(shù)值,則在后臺(tái)調(diào)用Number()將其轉(zhuǎn)換為數(shù)值,然后再應(yīng)用上面的規(guī)則。
希望本文對(duì)廣大站長(zhǎng)或從事企業(yè)網(wǎng)站建設(shè)公司的團(tuán)隊(duì)有所幫助,如對(duì)此不太理解的,可以與南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大站長(zhǎng)和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗(yàn)。