一、運算子優先順序
從高到低
運算子 | 說明 |
() | 圓括號 |
. [] new(帶引數列表) | 欄位訪問、陣列索引、new(帶引數列表) |
() new(無引數列表) | 函式呼叫,無引數列表 |
++(後置遞增) --(後置遞減) | 自增、自減 |
++(前置遞增) --(前置遞減) - + ~ ! delete typeof void | 一無運算子、返回資料型別、物件建立、未定義的值 |
* / % | 相乘、相除、求餘 |
+ - + | 相加、相減、字串相加 |
<< >> >>> | 位移 |
< <= > >= instanceof | 小於、小於或等於、大於、大於或等於、是否為特定類的例項 |
== != === !== | 相等、不相等、全等、不全等 |
& | 按位“與” |
^ | 按位“異或” |
| | 按位“或” |
&& | 邏輯“與” |
|| | 邏輯“或" |
?: | 條件運算子 |
= OP= | 賦值、賦值去處(+=、-=) |
yield、yield* | 迭代標記運算子 |
... | 展開運算子 |
, | 多個計算,逗號運算子 |
二、型別檢測與轉換
以下都是規範中的內部方法,不可直接呼叫
方法 | 說明 |
ToPrimitive | 兩個引數:值、期望型別。轉換為指定的型別 |
ToBoolean | 轉換為boolean值,如果引數是undefined、Null、0、NaN、或者String長度為零,結果為false,object或其他為true |
ToNumber | 轉換為數值型別 |
ToInteger | 轉換為整型,應該是16類整型 |
ToInt32 | 32位有符號整型 |
ToUint32 | 32位無符號整型 |
ToUint16 | 16位無符號整型 |
ToString | 轉換為字串型別,如果Number型別,轉換特殊處理。浮點數精度 |
ToObject | 轉換為物件型別 |
CheckObjectCoercible | 檢測引數是否可以通過ToObject轉換 |
IsCaller | 檢測引數是否為一個可呼叫物件,Object有call方法實現的才行,其他(Number\Boolean\String\Null\Undefined)等不行 |
SameValue | 兩個物件是否相等的演算法 |
提供的方法,可以直接呼叫
方法 | 說明 |
parseInt | 轉換為整型,兩個引數:一個數為可轉換為數值的內容,第二個參數列示進位制:2, 8, 10, 16,預設10進位制。但如果第一個引數的值以0x或0X開頭則認為是16進行 |
parseFloat | 轉換為一個浮點型數值 |
IsNaN | 判斷值是否為NaN,是NaN則為false |
IsFinit | 判斷值是為NaN、+Max、+Min,是NaN、+Max、+Min則為false |
P:
2017-05-02
修正運算子優先順序列表