操作符和關係運算轉換規則
阿新 • • 發佈:2018-12-24
乘法
- *
- 運算元為非數值的情況下會執行自動轉換
- 若一個運算元是NaN結果為NaN
- 若Infinity 與 0 相乘結果是NaN
- 無限 與 無限相乘結果還是無限
- 若一個運算元不是數值,則會呼叫Number()進行轉換
除法
- /
- 如果一個數是NaN結果為NaN
- 如果是Infinity除以Infinity,結果是NaN
- 0 / 0,結果為NaN
- 非0數值,除以0,結果為Infinity或者-Infinity
- Infinity除以任何非0數,結果都為Infinity
- 如果一個運算元不是數值,則呼叫Number()函式轉換
求模
- 運算元都是數值,執行常規操作
- 如果被除數是Infinity,結果為NaN
- 如果除數是0,結果為NaN
- 如果被除數是有限大,除數無限大,結果為被除數
- 如果被除數是0,結果為0
- 如果一個運算元不是數值,則呼叫Number()
加法
- 如果一個運算元是NaN結果是NaN
- Infinity加-Infinity,結果為NaN
- 如果+0加-0,結果為+0
- 如果一個運算元是字串,將另外一個運算元也轉換為字串
- 如果一個是字串,另一個運算元是物件、數值、或布林值,則呼叫它們的toString()方法取得字串
減法
- 除了字串的情況,與加法相同
- 當一個運算元不為數值時,則呼叫Number()
關係運算
- < > == >= <= != === !==
- 如果都是數值,則進行數值比較
- 如果都是字串,則比較字元編碼
- 如果一個運算元是物件,則呼叫valueOf(),如果無,則呼叫toString()方法
- 如果一個是數值,則將另外一個轉換為數值
- 如果一個是布林值,則先轉換為數值,在進行比較
- === !==不能進行格式轉換
逗號操作符
- 在賦值時候,逗號操作符總會返回表示式中的最後一項