JavaScript 學(xué)習(xí)筆記之操作符(續(xù))
一、乘性操作符
1、乘法:*
乘法操作符的一些特殊規(guī)則:
如果操作數(shù)都是數(shù)值,按照常規(guī)的乘法計(jì)算,如果乘積超過(guò)了ECMAscript數(shù)值的表示范圍,則返回infinity或者-infinity
如果有一個(gè)操作數(shù)是NaN,那返回結(jié)果就是NaN
如果是infinity與0相乘,返回NaN
如果infinity與非0數(shù)相乘,返回infinity或者-infinity
infinity與infinity相乘,返回infinity
如果有一個(gè)操作數(shù)不是數(shù)值,后臺(tái)會(huì)先調(diào)用number()將其轉(zhuǎn)化為數(shù)值,再應(yīng)用上面的規(guī)則
<script type="text/javascript">
alert(5 * 6); //30
alert(5 * NaN); //NaN
alert(Infinity * 0); //NaN
alert(Infinity * 2); //Infinity
alert("5" * 5); //25
alert(true * 10); //10
alert(false * 10); //0
</script>
2、除法:/
除法操作符的一些特殊規(guī)則:
如果操作數(shù)都是數(shù)值,按照常規(guī)的除法計(jì)算,如果商超過(guò)了ECMAscript數(shù)值的表示范圍,則返回infinity或者-infinity
如果有一個(gè)操作數(shù)是NaN,那返回結(jié)果就是NaN
如果是infinity被infinity除,返回NaN
如果是0被0除,返回NaN
如果是非0的有限數(shù)被0除,返回infinity或者-infinity
如果是infinity被非0的有限數(shù)除,返回infinity或者-infinity
如果有一個(gè)操作數(shù)不是數(shù)值,后臺(tái)會(huì)先調(diào)用number()將其轉(zhuǎn)化為數(shù)值,再應(yīng)用上面的規(guī)則
<script type="text/javascript">
alert(5 / 5); //1
alert(5 / NaN); //NaN
alert(Infinity / Infinity); //NaN
alert(Infinity / 2); //Infinity
alert(5 / 0); //Infinity
alert(10 / true); //10
alert(10 / false); //Infinity
</script>
3、求模(余數(shù)):%
求模操作符的一些特殊規(guī)則:
如果操作數(shù)都是數(shù)值,按照常規(guī)的除法計(jì)算,返回除得的余數(shù)
如果被除數(shù)是無(wú)窮大,除數(shù)是有限數(shù),那返回結(jié)果就是NaN
如果被除數(shù)是有限大,除數(shù)是0,返回NaN
如果是infinity被infinity除,返回NaN
如果被除數(shù)是有限大而除數(shù)是無(wú)窮大,返回被除數(shù)
如果被除數(shù)是0,返回0
如果有一個(gè)操作數(shù)不是數(shù)值,后臺(tái)會(huì)先調(diào)用number()將其轉(zhuǎn)化為數(shù)值,再應(yīng)用上面的規(guī)則
<script type="text/javascript">
alert(26 % 5); //1
alert(Infinity % 3); //NaN
alert(3 % 0); //NaN
alert(5 % Infinity); //5
alert(0 % 10); //0
alert(true % 25); //1
alert(3 % false); //NaN
</script>
二、加性操作符
1、加法操作符:+
如果操作數(shù)中有一個(gè)是字符串:
如果兩個(gè)操作數(shù)都是字符串,那么將第二個(gè)操作數(shù)拼接到第一個(gè)操作數(shù)后面。
如果只有一個(gè)操作數(shù)是字符串,那么將另一個(gè)操作數(shù)轉(zhuǎn)化為字符串后再執(zhí)行上述規(guī)則
<script type="text/javascript">
var result1 = 5 + 5; //數(shù)字加數(shù)字
alert(result1); //10
var result2 = 5 + "5"; //數(shù)字加字符串
alert(result2); //"55"
</script>
2、減法操作符:-
如果有一個(gè)操作數(shù)是字符串、布爾值、null或者undefined,則在后臺(tái)先調(diào)用number()將其轉(zhuǎn)化為數(shù)值,然后執(zhí)行減法。
三、關(guān)系操作符
大于:>
小于:<
大于等于:>=
小于等于:<=
關(guān)系操作符特殊規(guī)則:
如果操作數(shù)是字符串,對(duì)比兩個(gè)字符串相應(yīng)的字符編碼
如果操作數(shù)一個(gè)是數(shù)值,則先將另一個(gè)操作數(shù)轉(zhuǎn)化為數(shù)值,再進(jìn)行比較
任何數(shù)與NaN進(jìn)行比較,結(jié)果都是false
四、相等操作符
1、相等和不相等:==和!=
這兩個(gè)操作符都會(huì)先將操作數(shù)轉(zhuǎn)換為同一類型再進(jìn)行比較
轉(zhuǎn)換時(shí),相等和不相等操作符遵循如下規(guī)則:
如果其中一個(gè)操作數(shù)的類型為 Boolean ,那么,首先將它轉(zhuǎn)換為數(shù)字類型,false 轉(zhuǎn)換為 0, true 將轉(zhuǎn)換為 1。
如果其中一個(gè)操作數(shù)的類型是字符串,另外一個(gè)為數(shù)字類型,那么,將字符串轉(zhuǎn)換為數(shù)字進(jìn)行比較。
如果其中一個(gè)操作數(shù)是對(duì)象,另一個(gè)不是,則先調(diào)用操作數(shù)的valueof()方法,得到基本類型值之后再比較
比較時(shí)的特殊規(guī)則:
null 和 undefined 是相等的。
null 和 undefined 不會(huì)轉(zhuǎn)換為任何其他類型
如果任何一個(gè)操作的結(jié)果為 NaN,那么相等比較返回 false,不相等比較返回 true。注意,即使兩個(gè)操作數(shù)都為 NaN,返回結(jié)果一樣是 false,也就是說(shuō),NaN 不等于 NaN。
如果兩個(gè)操作數(shù)都是對(duì)象,那么比較它們引用的值,如果引用同一個(gè)對(duì)象,那么,返回真,否則,返回假。
2、全等和不全等:==和===
==會(huì)將操作數(shù)轉(zhuǎn)換成同一類型比較;
===不會(huì)轉(zhuǎn)換類型,直接比較
例如:
var result1 = ("55" == 55);
var result2 = ("55" === 55);
alert(result1);//true
alert(result2); //false"55"是字符串,55是數(shù)字,類型不一樣
五、條件操作符
變量=條件表達(dá)式?真值:假值
首先會(huì)對(duì)條件表達(dá)式求值,如果結(jié)果是真,則把真值賦給變量,如果為假則把假值賦給變量。
<script type="text/javascript">
var num1 = 10;
var num2 = 25;
var num3 = (num2 > num1) ? num2 : num1;
alert(num3); //25
</script>
六、賦值操作符
1、簡(jiǎn)單賦值操作符:=
var num1 = 10;
num=num1+10;
2、復(fù)合賦值操作符:+=、-=、*=、/=、%=、>>=、<<=、>>>=
<script type="text/javascript">
var num = 5;
alert(num); //5
num += 5;
alert(num); //10
num *= 2;
alert(num); //20
num /= 10;
alert(num); //2
num -= 2;
alert(num); //0
</script>
七、逗號(hào)操作符
逗號(hào)操作符可以在一條語(yǔ)句中執(zhí)行多個(gè)操作
用途:1、聲明多個(gè)變量
var num1=1,num2=2,num3=3;
2、賦值
var num=(0,1,2,3)//num=3
在用于賦值操作時(shí),逗號(hào)操作符總是返回最后一個(gè)表達(dá)式的值。
練習(xí)區(qū):
<script type="text/javascript">
var num1 = 5;
var num2 = 10;
var message = "The sum of 5 and 10 is " + num1 + num2;
alert(message);
</script>
<script type="text/javascript">
alert(null == undefined);
alert(null === undefined);
alert("NaN" == NaN);
alert("NaN" === NaN);
alert(NaN == NaN);
alert(NaN === NaN);
alert(NaN != NaN);
alert(NaN !== NaN);
alert(false == 0);
alert(false === 0);
alert(true == 1);
alert(true === 1);
alert(null == 0);
alert(undefined == 0);
alert(5 == "5");
alert(5 === "5");
</script>
以上就是本文的全部?jī)?nèi)容了,對(duì)于javascript的操作符的講解也就到此結(jié)束了,下篇文章我們來(lái)講解javascript語(yǔ)句。
相關(guān)文章
從數(shù)據(jù)結(jié)構(gòu)分析看:用for each...in 比 for...in 要快些
本篇文章小編將為大家介紹,從數(shù)據(jù)結(jié)構(gòu)分析看:用for each...in 比 for...in 要快些。需要的朋友可以參考一下2013-04-04深入理解JavaScript中的語(yǔ)法和代碼結(jié)構(gòu)
這篇文章主要介紹了JavaScript中的語(yǔ)法和代碼結(jié)構(gòu),對(duì)JS初學(xué)者而言,這些基礎(chǔ)一定要看一下2021-05-05《javascript少兒編程》location術(shù)語(yǔ)總結(jié)
在本篇內(nèi)容中小編整理了關(guān)于《javascript少兒編程》location術(shù)語(yǔ)總結(jié),這是學(xué)習(xí)的基礎(chǔ),一起跟著參考下吧。2018-05-05由ReactJS的Hello world說(shuō)開(kāi)來(lái)
這篇文章主要介紹了ReactJS的Hello world程序編寫(xiě)及其相關(guān)知識(shí),React是Facebook開(kāi)發(fā)并開(kāi)源的JS框架,人氣在當(dāng)下急劇攀升,需要的朋友可以參考下2015-07-07JavaScript中幾種排序算法的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了JavaScript中幾種排序算法的簡(jiǎn)單實(shí)現(xiàn),排序是各種編程語(yǔ)言學(xué)習(xí)中都是共通的必會(huì)的基礎(chǔ),需要的朋友可以參考下2015-07-07JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之鏈表
鏈表就是線性表中針對(duì)順序存儲(chǔ)結(jié)構(gòu)的一種優(yōu)化手段,但是在javascript語(yǔ)言中由于數(shù)組的特殊性(自動(dòng)更新引用位置),所以我們可以采用對(duì)象的方式做鏈表存儲(chǔ)的結(jié)構(gòu)2016-01-01