js基礎 運算符

1、一元運算符數組

++ --  + - 分別 爲:自增,自減,正,負函數

2、特殊的幾個運算符測試

= 賦值運算符   + 字符串運算符    , 逗號運算符編碼

1.=   spa

說明:=爲賦值  ==  比較中的等於(值相等便可) === 比較中恆等(值和原理都相等)code

2.+對象

說明:正常狀況下,在運算中,數值類型的優先級是最高的,任何類型的變量都要轉換成數值類型進行運算,而後若是是比較就返回出boolean值,若是是算術運算則返回運算結果。可是在出現‘+’時,字符串的優先級最高,任何類型都要轉換成String類型。例:ci

var box=10,
		box1=20,
		box2='年齡:';
	alert(box+box1+box2);//30年齡:
	alert(box2+box+box1);//年齡:1020
	alert(box2+(box+box1));//年齡:30

3.,字符串

說明:能夠在一條語句中執行多個操做,如上面聲明多個變量、數組、對象中多個屬性數學

3、算術運算符

+ - * / %  +=   -=  *=  /=   %=   若是在算術運算符的值不是數值,則後臺會使用Number()轉型函數將其轉換爲數值(隱式轉換)。正常來講,算術運算符和正常的數學運算差很少,括號的優先級是最高的。須要注意的是:String類型在進行Number()轉換時,要遵循的規則(有一個非數字就是NaN);還有'+'與字符串在一塊兒時,再也不是算術運算符,而變成連字符。還有,對象的算術運算,空對象和返回值是字符串的對象,會返回NaN(空對象轉數值是NaN,有返回值的經過 toString方法來轉換)

var num=10;
	alert(num+=num);//20   此時 num=20
	alert(num-=num);//0    此時 num=0
	alert(num*=num);//100  此時 num=0
	alert(num/=num);//1    此時 num=0/0=NaN 
	alert(num%=num);//0    此時 num=NaN   任何和NaN進行運算的結果都是NaN 
	//注:若是直接這麼運行下去,則會出現下面的值是NaN的問題,由於num被賦了新的值,並非最開始的10,這個其實在後來是運行了的。想要輸出上面所想要的結果,只能一個一個的運行。

4、關係運算符

<  >  <=   >=  == !=   ===  !==

規則:1.有一個數值,都要轉換成數值進行比較。2.有字符串時,進行字母的ASCII編碼進行比較,且只比較一位,再也不比較第二位(字符串和數值比較時,也是這個規則)。3.若是是對象,與對象的返回值進行比較。4.NaN不等於任何數值,他自己也不相等,5.對象則比較他們是否指向同一個對象,指向同一個對象則返回true,不一個則返回false,且兩個空的對象也是不相等的,由於他們存放的位置不同,因此不相等。6.null與undefined的值是相等的,可是類型是不等的。

特殊值對比表

表達式
null==undefined true
'NaN'==NaN false
5==NaN false
NaN==NaN false
true==1 true
false==0 true
true==2 false
undefined==0 false
null==0 false
'100'==100 true
'100'===100 false
undefined==null true

5、邏輯運算符

&&  ||  !

1.&&

有一個操做數爲假返回值 就是假。當第一個操做數是真是纔會運行第二個操做數。當含有對象時,若是第一個操做數爲假,則返回false,而不執行對象;當含有null,undefined時,若是第一個操做數爲真,則分別返回null或undefined,不然會返回false

2.||

有一個操做數爲真則返回真。當第一個操做數的結果爲true時,就不會再執行第二個操做數了。當含有對象時,若是第一個操做數是對象,則返回第一個操做對象;若是第二個操做數是對象,只有當第一個操做數是false時,纔會返回第二個操做數對象,不然返回true。當含有null,undefined時,當第一個操做數和第二個操做數都是null,undefined時,才返回null,undefined(這個我不是特別肯定,可是又找不到驗證的方法,先這樣記着);

var  box= (5>4) || null;
	var  box1= (5<4) || null;
	var  box3= null || (5>4);
	var  box4= null || (5<4);
	alert(box+','+box1+','+box3+','+box4);//true,null,true,false

3.!

非真即假,非假即真,  !!爲取反再取反

6、三元運算符

= 以後是判斷條件  ? 是執行   第一個是真的時候執行   :後面是假的時候執行

var box5 = 5>4 ? alert('真'):alert('假'); //真
	//至關於
	var box5='';
	if (5>4) {
		box5='真';
	} else {
		box5='假';
	}
	alert(box5);//真
	//這兩個是不同的,可是具體哪兒不同,忘掉了
	//判斷變量存在不存在
	//var x=(typeof f)!='undefined' ? alert(f) : alert(null);//這個是爲了測試,下面纔是實際應用
	var y=(typeof z)!='undefined' ? z : z=null;
	alert(y);

	var c;
	if((typeof cc)!='undefined'){
		c=cc
	}else{
		c=null;
	}
	alert(c);//null
相關文章
相關標籤/搜索