天天看點

JavaScript筆記:運算符運算符:等同于數學中的運算一樣處理

運算符:等同于數學中的運算一樣處理

表達式:一定都會有值

//指派表達式
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); //結果為:及格