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)換為同一類(lèi)型再進(jìn)行比較
轉(zhuǎn)換時(shí),相等和不相等操作符遵循如下規(guī)則:
如果其中一個(gè)操作數(shù)的類(lèi)型為 Boolean ,那么,首先將它轉(zhuǎn)換為數(shù)字類(lèi)型,false 轉(zhuǎn)換為 0, true 將轉(zhuǎn)換為 1。
如果其中一個(gè)操作數(shù)的類(lèi)型是字符串,另外一個(gè)為數(shù)字類(lèi)型,那么,將字符串轉(zhuǎn)換為數(shù)字進(jìn)行比較。
如果其中一個(gè)操作數(shù)是對(duì)象,另一個(gè)不是,則先調(diào)用操作數(shù)的valueof()方法,得到基本類(lèi)型值之后再比較
比較時(shí)的特殊規(guī)則:
null 和 undefined 是相等的。
null 和 undefined 不會(huì)轉(zhuǎn)換為任何其他類(lèi)型
如果任何一個(gè)操作的結(jié)果為 NaN,那么相等比較返回 false,不相等比較返回 true。注意,即使兩個(gè)操作數(shù)都為 NaN,返回結(jié)果一樣是 false,也就是說(shuō),NaN 不等于 NaN。
如果兩個(gè)操作數(shù)都是對(duì)象,那么比較它們引用的值,如果引用同一個(gè)對(duì)象,那么,返回真,否則,返回假。
2、全等和不全等:==和===
==會(huì)將操作數(shù)轉(zhuǎn)換成同一類(lèi)型比較;
===不會(huì)轉(zhuǎn)換類(lèi)型,直接比較
例如:
var result1 = ("55" == 55);
var result2 = ("55" === 55);
alert(result1);//true
alert(result2); //false"55"是字符串,55是數(shù)字,類(lèi)型不一樣
五、條件操作符
變量=條件表達(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)文章
Websocket協(xié)議詳解及簡(jiǎn)單實(shí)例代碼
這篇文章主要介紹了Websocket協(xié)議詳解及簡(jiǎn)單實(shí)例代碼的相關(guān)資料,這里對(duì)websocket 協(xié)議進(jìn)行詳細(xì)介紹,并附簡(jiǎn)單實(shí)例代碼,需要的朋友可以參考下2016-12-12
javascript如何創(chuàng)建表格(javascript繪制表格的二種方法)
利用js來(lái)動(dòng)態(tài)創(chuàng)建表格有兩種格式,appendChild()和insertRow、insertCell()。兩種方式其實(shí)差不多,但第一種有可能在IE上有問(wèn)題,所以推薦大家使用第二種方法,看下面的解決和使用方法2013-12-12
Javascript 動(dòng)態(tài)改變imput type屬性
這篇文章主要介紹了Javascript 動(dòng)態(tài)改變imput type屬性的相關(guān)資料,并附簡(jiǎn)單實(shí)例代碼,需要的朋友可以參考下2016-11-11
JavaScript子窗口ModalDialog中操作父窗口對(duì)像
在使用js中會(huì)碰到這樣的需求:利用子窗口操作父窗口對(duì)像,本人很是遺憾,于是搜索整理下,拿出來(lái)和大家分享,需要的朋友可以參考下2012-12-12
javascript 繼承學(xué)習(xí)心得總結(jié)
下面小編就為大家?guī)?lái)一篇javascript 繼承學(xué)習(xí)心得總結(jié)。小編覺(jué)得挺不錯(cuò)的?,F(xiàn)在分享給大家。給大家做個(gè)參考2016-03-03
淺談JavaScript編程語(yǔ)言的編碼規(guī)范
本文淺談 JavaScript 編程中關(guān)于編碼規(guī)范的問(wèn)題,分析其中緣由。希望引起更多 Web 開(kāi)發(fā)人員對(duì) JavaScript 編碼規(guī)范問(wèn)題的關(guān)注和對(duì)軟件產(chǎn)品質(zhì)量問(wèn)題的重視2011-10-10

