JavaScript(四)操作符
6種表達式
原始表達是 初始化表達式 函數定義表達式
函數調用表達式 屬性訪問表達式 對象創建表達式
操作符
操作符的優先級
屬性訪問[] . > 一元操作符 > */ > +- > 比較 > 相等 > && > || > ?:;>,
操作符的結合性
右結合: 一元操作符、三目操作符、賦值
(當兩個一元操作符同時存在的時候 從右向左計算)
左結合:其他的 默認的都是左結合
一元操作符 + - ++ -- !
一元加 + 不會對數值產生任何影響 只隱式調用 Number
var a = -123; console.log(+a) //-123
特別的對對像使用一元加的時候 需要先調用 valueOf 或 toSrring
一元減 - 與一元加類似 調用Number 之後 取相反數
位操作符
~ 按位非 取負值後減一
>> 右移 m>>n 將m轉化成二進制 然後 向右移n位
<< 左移 m<<n 將m轉化成二進制 然後 向左移n位
布爾操作符 && || !
&& 常被用於判斷
|| 常備用於負值 也可以用於判斷
小題
1.
var a = 1; b = a + ++a; c = a ++ + ++ a ; //b=3 //c=6
2.
x=a?b:c?d:e?f:g; //x=(a?b:(c?d:(e?f:g))) 右結合
3.
a = -1; b = +a; alert(b); //-1
4.
0 === -0; //true
乘性操作符 * / %
*
infinity*0 -> NaN;
/
infinity/infinity -> NaN;
0/[num] -> NaN
加減操作符
+
infinity+ -infinity -> NaN
+undefined -> NaN
+ null -> 0
-
infinity-infinity -> NaN
-infinity - -infinity -> NaN
關系操作符 > < >= <=
也可以比較字符串 非數字 默認比較字符串第一位的 Ascii碼
可以轉化成 number 類型的 就轉化成數字進行比較
小題
7>6>5 //false 這裏 關系運算符是 左結合的 true>5 -> fase
相等操作符
null == undefined true
NaN != NaN true
undefined == 0 false
null == 0 false
相等操作符 裏面 可能是 內定了 null == undefined 而且 null 和 undefined 在比較的時候 不進行轉換 NaN 不等於任何
賦值操作符 =
右結合 除了 , 之外 優先級最低
逗號操作符
常用語賦值語句中 賦值多個
JavaScript(四)操作符