運算符:等同于數學中的運算一樣處理
表達式:一定都會有值
//指派表達式
var a = 10;
//算術表達式
a + 10;
console.log(a);
1、算術運算符:+ - * / % ++ –
(1)i++與++i的差別:
i++
先用再加
++i
先加再用
(2)優先級問題:
先算
*
/
%
,再算
+
-
可以使用括号
()
改變運算順序
(3)解決誤差
使用函數
toFixed(n)
其中n表示保留的小數位數
var a = 2 - 1.6;
console.log(a);//結果為:0.399999999999999
a = a.toFixed(2);
console.log(a);//結果為:0.40
(4)鍵盤輸入值
基本文法:
prompt("提示","預設值(可省略)");
var a = prompt("請輸入:"); //假設輸入2
console.log(a);//結果為2
2、關系運算符:> < >= <= != === !==
最終的結果為boolean類型的值
==
/
!=
僅判斷資料值
===
/
!==
判斷資料的值和資料的類型
(1)string與number比較時
string會先轉換為number,使用了
Number()
函數
任何資料與
NaN
比較,結果都會是
false
(2)string與string比較時
二者使用Unicode碼進行比較
檢視unicode碼方法:
'a'.charCodeAt()
空字元可以當做
false
使用,如
""
,
,
0.0
,
undefined
3、邏輯運算符:多個條件之間的判斷關系
(1)與:&&
兩個條件都為
true
,則結果為
true
短路邏輯:隻要第一個條件為
false
,結果就會為
false
,後面的語句不進行操作。即“見0則0”
(2)或:||
兩個條件有一個條件為
true
,則結果為
true
短路邏輯:隻要第一個條件為
true
,結果就會為
true
,後面的語句不進行操作。即“見1則1”
(3)非:!
取反
4、位運算符
隻能做數字的運算,而且要将數字轉為二進制
(1)&:按位 與
對應某一位上的操作數都是1時,該為結果為1,否則為0
應用場景:判斷奇偶性(比取餘效率高)
//和1做按位與運算,最後一位為1,則是奇數,否則為偶數
console.log((10 & 1 !== 0));//結果為false
(2)|:按位 或
對應某一位上的操作數有一個是1時,該為結果為1,否則為0
應用場景:向下取整
var a = 48.89;
console.log(a | 0); //結果為:48
(3)<<:按位左移
将二進制數,向左移動幾位,右邊補0
//将1的二進制數左移2位
console.log(1 << 2);
//左移前:0000 0001
//左移後:0000 0100
// 結果為:4
(4)>>:按位右移
将二進制數,向右移動幾位,左邊補0
//将8的二進制數右移2位
console.log(8 >> 2);
//左移前:0000 1000
//左移後:0000 0010
// 結果為:2
(5)^:異或
對應某一位上的操作數隻一個是1時,該為結果為1,否則為0
應用場景:交換兩個變量的值
var a = 5,
b = 3;
a = a ^ b;//a = 6
b = b ^ a;//b = 5
a = a ^ b;//a = 3
5、指派運算符:= += -= *= /= %= &= |= ^=
+=:
a += b;
===>
a = a + b;
-=:
a -= b;
===>
a = a - b;
……
6、三目運算符:
基本文法:
表達式1 ? 表達式2 : 表達式3
其中表達式1的結果為
boolean
類型,如果表達式1結果為true,則執行表達式2
如果表達式1結果為false,則執行表達式3
var score = 78;
var result = score >= 60 ? "及格" : "不及格";
console.log(result); //結果為:及格