一、乘性運算子
1、乘法:*
乘法運算子的一些特殊法則:
如果運算元都是數值,依照常規的乘法計算,如果乘積超過了ECMAscript數值的表示範圍,則傳回infinity或-infinity
如果有一個運算元是NaN,那回傳結果就是NaN
如果是infinity與0相乘,返回NaN
如果infinity與非0數相乘,則回傳infinity或-infinity
infinity與infinity相乘,返回infinity
如果有一個運算元不是數值,後台會先呼叫number()轉換為數值,再套用上面的規則
2、除法:/
除法運算子的一些特殊規則:
如果運算元都是數值,依照常規的除法計算,如果商數超過了ECMAscript數值的表示範圍,則傳回infinity或-infinity
如果有一個運算元是NaN,那回傳結果就是NaN
如果是infinity被infinity除,回NaN
如果是0被0除,返回NaN
如果是非0的有限數被0除,則回傳infinity或-infinity
如果是infinity被非0的有限數除,回傳infinity或-infinity
如果有一個運算元不是數值,後台會先呼叫number()轉換為數值,再套用上面的規則
3、求模(餘數):%
求模運算子的一些特殊規則:
如果運算元都是數值,依照常規的除法計算,則傳回除得的餘數
如果被除數是無窮大,除數是有限數,那麼回傳結果就是NaN
如果被除數是有限大,除數是0,則回傳NaN
如果是infinity被infinity除,回NaN
若被除數是有限大而除數是無窮大,則回傳被除數
如果被除數是0,則回傳0
如果有一個運算元不是數值,後台會先呼叫number()轉換為數值,再套用上面的規則
二、加性運算子
1、加法運算子:
如果運算元中有一個是字串:
如果兩個運算元都是字串,那麼將第二個運算元拼接到第一個運算元後面。
如果只有一個運算元是字串,那麼將另一個運算元轉換為字串後再執行上述規則
2、減法運算符:-
如果有一個運算元是字串、布林值、null或undefined,則在背景先呼叫number()將其轉換為數值,然後執行減法。
三、關係運算子
大於:>
小於:
大於等於:>=
小於等於:
關係運算子特殊規則:
如果運算元是字串,比較兩個字串對應的字元編碼
如果操作數一個是數值,則先將另一個操作數轉換為數值,再進行比較
任何數字與NaN進行比較,結果都是false
四、相等運算子
1、相等與不相等:==和! =
這兩個運算子都會先將運算元轉換為相同型別再進行比較
轉換時,相等和不相等運算子遵循以下規則:
如果其中一個運算元的類型為 Boolean ,那麼,首先將它轉換為數字類型,false 轉換為 0, true 將轉換為 1。
如果其中一個操作數的類型是字串,另外一個為數字類型,那麼,將字串轉換為數字進行比較。
如果其中一個操作數是對象,另一個不是,則先呼叫操作數的valueof()方法,得到基本型別值之後再比較
比較時的特殊規則:
null 和 undefined 是相等的。
null 和 undefined 不會轉換為任何其他類型
如果任何一個操作的結果為 NaN,那麼相等比較回傳 false,不相等比較回傳 true。請注意,即使兩個運算元都為 NaN,傳回結果一樣是 false,也就是說,NaN 不等於 NaN。
如果兩個操作數都是對象,那麼比較它們引用的值,如果引用同一個對象,那麼,返回真,否則,返回假。
2、全等和不全等:==和===
==會將操作數轉換成相同型態比較;
===不會轉換型,直接比較
例如:
五、條件運算子
變數=條件表達式?真值:假值
首先會對條件表達式求值,如果結果是真,則把真值賦給變量,如果為假則把假值賦給變數。
六、賦值運算子
1、簡單賦值運算子:=
var num1 = 10;
num=num1 10;
2.複合賦值運算子: =、-=、*=、/=、%=、>>=、>>=
七、逗號運算子
逗號運算子可以在一條語句中執行多個操作
用途:1、宣告多個變數
var num1=1,num2=2,num3=3;
2、賦值
var num=(0,1,2,3)//num=3
在用於賦值運算時,逗號運算子總是傳回最後一個表達式的值。
練習區:
如果你想了解你的網站,如果你想使用javascript,你可以建立一個新帳戶。講解javascript語句。