1. 程式人生 > >操作符和關係運算轉換規則

操作符和關係運算轉換規則

乘法

  • *
  • 運算元為非數值的情況下會執行自動轉換
  • 若一個運算元是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()方法
  • 如果一個是數值,則將另外一個轉換為數值
  • 如果一個是布林值,則先轉換為數值,在進行比較
  • === !==不能進行格式轉換

逗號操作符

  • 在賦值時候,逗號操作符總會返回表示式中的最後一項