js中的運算符(大量例子來說明)

一、運算操作符(將以大量例子來助於理解)

1、+
1) “+”作用:數學運算、字符串鏈接
2) 任何數據類型加字符串都等於字符串
例:

var a = “a”+ true + 1; //打印 atrue1
var a = 1 + “a” + 1 + 1; //打印 1a11
var a = 1 + 1 + “a” + 1 + 1; //打印 2a11,從左向右運算
var a = 1 + 1 + “a” +( 1 + 2); //打印 2a3

2、- (減) * (乘) /(除)

var a = 01//等於-1 
var a = 2 * 1//等於 2 
var a = 0 / 0//答案是 NaN,應該得出一個數字類型的數,但是沒法表達,就用 NaN (NaN 是 Not a Number 非數,不是數,但是是數字類型
var a = 1 / 0; //是 infinity
var a = -1 / 0; //是-infinity 

3、%,摩爾,模,是取餘數的意思
例:

var a =5%2 //5%2 是五除二的餘數,商二餘一
var a =5%1 //是五除一的餘數,結果是 0
var num = 1 % 5; //意思是 1 除以 5 的餘數。商 0 餘 1 
var a =4%6 //是四除六的餘數,結果是 4 
var a = 4;a % = 5;document.write(a); // 4 
var a = 0;a % = 5;document.write(a); //0 
var a = 10;a %= 2;document.write(a); //0 
var a = 3;a % = 4; //4

“-”,“*”,“/“,“%”,”=“,“()” 優先級”=“最弱【賦值符號優先級最低】,”()”優先級較高

4、++

var a = 10; a = a + 1; //結果 11

例:
var a = 1;
a = a + 1;寫成 a ++是一種簡化形式“++”,是自身加一,再賦值給自身
a++是 a=a+1 的簡化形式

例:

var a =10;document.write(++a );document.write(a); //答案 11;11

是先執行++,再執行本條語句 document.write(++a)

var a =1;document.write(a ++);document.write(a); //答案 1;2`

是先執行語句(document.write(a)),再++,所以第一次打印的還是 a,第二次打印 a++後的值

var a =10var b=++a -1+a++;document.write(b + “ ” + a) //答案 21 12

先++a,這個時候 a=11,再-1,再加 a,b 就是 21,最後++,a 就是 12賦值的順序自右向左,計算的順序自左向右(按數學來)

 var a =1var b = a ++ + 1;document.write(b)//答案 2,先執行 var b =a+1, 再 a++

var a =1var b = a ++ + 1;document.write(a);document.write(b)//答案 2,2 

var a =1var b = ++a + 1;document.write(a);document.write(b)//答案 2,3 

var i = 1;var a = i++; //答案 a = 1; 此時 i 先將值 1 賦給 a,然後自己+1,i=2;

var b = ++i; //答案 b = 3;此時 i 先自己+1 爲 3.再給 b 賦值,b=3;

*5、--
“- -”,是自身減一,在賦值給自身

var a = 1;var b = a-- + -- a;document.write(b); //答案 ,先執行--a;此時 a 變成0,然後第一個 a 也變成 0,那麼 b = 0-- + --a 

var a = 1;var b = --a + --a;document.write(b); //答案-1 

var a = 1;document.write(a++);document.write(a); //答案 1;2 

var a =1; var b = a ++ +1;document.write(b); //答案 2 ,a 寫在後面就後運行,先計算 a+1=2 賦值給 b 後再++

6、+= 和 -=

var a =10;a ++;a ++;a ++;加十個
簡化寫法:a +=10;也是 a = a+10;

var a =10;a += 10 + 1; //答案 21

例 var a = 1;a = a + 10;//等於 a+=10

a++是 a +=1 的寫法

7、/=

var a=10;a/=2; //答案 5,是除二賦給自身的意思

8、=*

var a =10;a *=2; //答案:20,是乘二賦給自身的意思

9、%=

var a=10;a%=2; //答案:0, 10 能整除 2,餘數是 0,取餘,餘數賦給自身。
var a=3;a%=4; //答案:3,3 除以 4,餘數爲 3,餘數賦給自身。
var a=0;a%=4; //答案:0,0 除以 4,餘數爲 0,餘數賦給自身。
var a = 1;a% =10; //答案:1,1 除以 10,餘數爲 1,餘數賦給自身。

二、比較運算符

注:“>”,”<”,”==”,“>=”,“<=”,”!=”比較結果爲 boolean 值
但凡是運算符,都是要有運算的
用到布爾值,true 或 false
字符串的比較,比的是 ASCII 碼(七位二進制 0000000)
1、> , <

var a = "a">"b";document.write(a); //答案是 false
var a = 1 > 2;document.write(a); //答案是 false 
var a = 1 <2;document.write(a); //答案是 true
var a = "1">"8";document.write(a); //答案是 false
var a = "10">"8";document.write(a); //答案 false,不是10和8比,是字符串一零和八比,先用開頭的一和八比,比不過就不看第二位了;一樣的就拿零和八比

2、= =,等不等於

var a = 1 == 2; //答案是說 1 等不等於 2,因爲 1 肯定不等於 2,所以值false

var a = NaN == NaN; //答案是 false,NaN 不等於任何東西,包括他自己

var a = undefined == underfined; //答案是 true

var a = infinity == infinity; //答案是 true

var a = NaN == NaN; //答案是 false。非數 NaN 是不等於自己的

NaN 得不出數,又是數字類型,就是 NaN
3、>= , <= , !=(是否不等於,非等)
比較結果爲 boolean 值:true 和 false

三、邏輯運算符

“&&”,“||”,“!“運算結果爲真實的值

1、&&運算符

兩個表達式:先看第一個表達式轉換成布爾值的結果是否爲真,如果結果爲真,那麼它會看第二個表達式轉換爲布爾值的結果,然後如果只有兩個表達式的話,只看到第二個表達式,就可以返回該表達式的值了,如果第一位布爾值爲
false,不看後面的,返回第一個表達式的值就可以了

運算符就是要求結果

var a = 1 && 2; //答案 2,如果第一位 1 爲真,結果就爲第二位的值 2 
var a = 1 && 2 + 2; //答案 4,如果 1 爲真,結果就爲 4 
var a = 0 && 2 + 2; //答案 0 
var a = 1 && 1 && 8; //答案 8,先看第一個是否爲真,爲真再看第二個,中途如果遇到 false,那就返回 false 的值
var a =1 + 1 && 11;document.write(a); //答案 0

如果是三個或多個表達式,會先看第一個表達式是否爲真,如果爲真,就看第二個表達式,如果第二個也爲真,就看第三個表達式(如果爲真就往後看,一旦遇到假就返回到假的值),如果第三個是最後一個表達式,那就直接返回第三個的結果如果第一個是假,就返回第一個值,當是真的時候就往後走,一旦遇到假,就返回

2>1 && document.write(‘成哥很帥’) //意思是如果 2 大於 1,那麼就打 印成哥很帥,如果前面真才能執行後面的(相當於短路語句使用)

&&與運算符是有中斷作用的,當短路語句使用(如果。。那麼。。)

2、|| 運算符

var num = 1 || 3; //答案 1  
var num = 0 || 3; //答案 3 
var num = 0 || false; //答案是 false

看第一個表達式是否爲真,如果爲真,則返回第一個值,碰到真就返回,如果第一個表達式是假,就看第二個表達式,如果第二個是最後一個,就返回第二個的值

關注真假的說法:全假才爲假,有一個真就爲真

3、!非運算符,否的意思
先轉成布爾值,再取反

var a = ! 123;document.write(a); //答案 false。123 的布爾值是 true,取反是 false
var a = ! “”;document.write(a); //答案 true。空串””布爾值是 false,取反是 true
var a = ! !“”;document.write(a); //答案 false,取反後,再反過來,結果不變
var a = true;a =!a;document.write(a) //答案 false,自身取反,再賦值給自身

!=非等於是表達他們到底等不等的

四、被判斷爲false的值

轉換爲布爾值會被認爲false的值又 undefined、null、false、""、NaN、0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章