JavaScript學習筆記——操作符

一元操作符
只能操作一個值得操作符叫做 一元操作符 。
1、遞增遞減操作符
遞增和遞減操作符有兩種類型:前置性和後置型。前置型位於操作的變量之前, 先執行值的變化然後求值 。 後置型位於操作的變量之後, 先執行求值然後執行值的變化 。
前置型:var age = 29;
var anotherage==++age-2;
alert(age); //30
alert(anotherage); //28

後置型:var num1 =2;
var num2=20;
var num3 = num1-- + num2; //22
var num4=num1+num2; //21

2、一元加和減操作符

var s1="01";
var s2="1.1";
var s3="z";
var b = false;
var f = 1.1;
var o ={
    valueOf:function(){
        return -1;
    }
}

加操作符s1 = +s1;//值變成數值1
s2 = +s3;//值變成數值1.1
s3 = +s3;//值變成NaN
b = +b;//值變成數值0
f = +f;//值仍是1.1
o = +o//值變成-1;

減操作符s1 = -s1;//值變成數值-1
s2 = -s3;//值變成數值-1.1
s3 = -s3;//值變成NaN
b = -b;//值變成數值0
f = -f;//值仍是-1.1
o = -o//值變成1

位操作符
1、按位非(~)
按位非操作的本質:操作數的負值減1。

var num1 = 25;//二進制00000000000000000000000000011001
var num2 = ~num1;//二進制11111111111111111111111111100110
alert(num2);-26

2、按位與(&)
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
3、按位或(|)
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
4、按位異或(^)
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
5、左移(<<)
向左移位後,原數值的右側多了n個空位,用0 補齊,左移不移符號位
6、有符號右移(>>)
與左移正好相反,符號位不變
7、無符號右移(>>>)
正數與有符號數相同,負數移動時符號位也會隨之移動。
布爾操作數
1、邏輯與(&&)
true && true = true
true && false = false
false && true = false
false && false = false
如果第一個操作數是對象,返回第二個操作數;
如果第二個操作數是對象,只有在第一個操作數是true時返回該對象;
如果有一個操作數是null,NaN或undefined,分別返回null,NaN,undefined。
2、邏輯或(||)
true || true = true
true || false = true
false || true = true
false || false = false
如果第一個操作數是對象,返回第一個操作數;
如果兩個操作數都是對象,返回第一個操作數;
如果第一個操作數求值結果是false,返回第二個操作數;
如果有一個操作數是null,NaN或undefined,分別返回null,NaN,undefined。
3、邏輯非(!)
如果操作數是一個對象,返回false;
如果操作數是一個空字符串,返回true;
如果操作數是一個非空字符串,返回false;
如果操作數是0,返回true;
如果操作數是非0值,包括Infinity,返回false;
如果操作數是null,NaN或undefined,返回true。
乘性操作符 乘法、除法和求模
加性操作符 加法和減法
關係操作符 <、>、<=、>=

var result = "Brick"<"alphbet"; //true

因爲B編碼爲66,a是97,所以爲true

var result = "Brick".toLowerCase() < "alphbet".toLowerCase(); // false
var result = "23"<"3";//true

字符串”23“小於字符串”3“

var result = 23 < 3//false
var result = "a" < 3//true

字母a被轉換爲了NaN
相等操作符
1、相等於不相等(== 和!=)
兩個操作數相等,返回true,不相等返回false
不同類型的操作數會進行強制轉換之後進行比較
null == undefined
2、全等與不全等
不進行強制轉換,進行比較
null !== undefined
條件操作符(?:)

var max = (num1 > num2) ? num1 : num2

賦值操作符
乘賦值 *= 除賦值/= 模賦值 %= 加賦值 += 減賦值-=
逗號操作符

var num = (1,2,3,4,5);//num值是5
發佈了41 篇原創文章 · 獲贊 13 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章