js 運算符

運算符

表達式

是各類變量、數值、運算符的綜合體。最簡單的表達式是一個字面量或者變量。數組

一元運算符

只能操做一個值的運算符叫一元運算符。函數

其餘類型應用一元運算符的規則。編碼

var  box="89";
box++
//90,數值字符串自動轉換成數值

var box="a";
box++;
//NaN,字符串包含非數值轉成NaN

var box=flase;
box++;
//1,flase轉成數值是0,累加結果是1

var box=1.3;
box++;
//2.3, 

var box={
  toString: function(){
   return 1;
  }
};  box++;

算術運算符

加、減、乘、除、餘。若是在算數運算的值不是數值,那麼後臺會使用Number()轉型函數將其轉換爲數值(隱式轉換)。spa

1.加code

//加法
var box=1+2;   //3
var box=1+NaN; //NaN  只要有一個NaN就爲NaN
var box=Infinity+Infinity;  //Infinity
var box=-Infinity+-Infinity;  //-Infinity
var box=Infinity+-Infinity;  //NaN,正無窮和負無窮相加等於NaN
var box=100+"100"   //100100  字符串鏈接符  有字符串就不是加法
var box="您的年齡是:"+10+20;  //您的年齡是:1020,被轉換成字符串
var box=「您的年齡是:」+(10+20); //您的年齡是:30,沒有被轉換成字符串
var box=10+20+「您的年齡是:」; //30您的年齡是:,沒有被轉換成字符串
var box=10+對象 //10[Object Object],若是有toString()或valueOf(),則返回10+返回數的值

減、乘、廚、餘能夠本身試對象

var a=56;
   var b=++a;  //b=++a <==> [a=a+1;b=a;]  b=a++ <==> [b=a;a=a+1]
   alert(a);
   alert(b);

// b=++a  結果是57 57
// b=a++  結果是57 56

關係運算符

<  >  <=   >=   ==相等   !=不等   ===全等值和數據類型   !==不恆等字符串

1,兩個操做數都是數值,則數值比較;it

2,兩個操做數都是字符串,則比較兩個字符串對應的字符編碼值;io

3,兩個操做數有一個是數值,則將另外一個轉換爲數值,再進行數值比較;字符編碼

4,兩個操做數有一個是對象,則先調用valueOf()方法或toString()放的,再進行結果比較;

var box=3>2;  //true
var box=3>22; //flase
var box="3">22; //flase
var box="3">"33"  //flase
var box="a">"b"  //flase
var box=1>對象  //flase 若是有toString()或valueOf(),z則返回1>返回數的值

在相等和不等的比較上,若是操做數是廢樹脂,則遵循如下規則

1,一個操做數是布爾值,則比較值錢將其轉換爲數值,flase轉換爲0,true轉換爲1;

2,一個操做數是字符串,則比較值錢將其轉換爲數值再比較;

3,一個操做數是對象,則先調用valueOf()或toString()方法後再和返回值比較;

4,不須要任何轉換的狀況下,null和undefined是相等的;

5,一個操做數是NaN,則==返回flase,則!=返回true;而且NaN和自身不等;

6,兩個操做數都是對象,則比較他們是否爲同一對象,若是都指向同一對象,則返回true,不然返回flase.

7,在全等和不等的判斷上,好比值和類型都相等,才返回true,不然返回flase.

邏輯運算符

一般用於布爾值的操做,and   or  not非

1.and  &&

var  box=(5>4)&&(4>3)  //兩邊都爲true 返回true   有一個flase 返回flase

第一個操做值                  第二個                          結果

true                                    true                             true

true                                    flase                            flase

true                                    flase                           flase

flase                                  true                            flase

flase                                 flase                             flase

若是兩邊的操做數有一個不是布爾值的狀況下,與運算就不必定返回布爾值,此時,遵循如下原則:

1,第一個操做數是對象,則返回第二個操做數;

2,第二個操做數是對象,則第一個操做數返回true,才返回第二個操做數,不然返回flase

3,有一個操做數是null,則返回null

4,有一個操做數是undefined,則返回undefined

var box=對象&&(5>4);   //true,返回第二個操做數
var box=(5>4)&&對象    //[object object]
var box=(3>4)&&對象    //flase
var box=(5>4)&&null   //null

2.or ||

var box=(9>7)||(7>8); //true,兩邊只要有一個是true,返回true

3,非  !

非運算符能夠用於任和數據類型,這個運算符否是返回一個布爾值,它的流程是,現將這個值轉換成布爾值,而後取反。

賦值運算符

=  把右邊的值賦給左邊的變量

var box=100;   //把100賦值給box變量

複合賦值運算符經過x=的形式表示x表示算數運算符及位運算符

var box=100;
box=box+100;

其餘運算符

1.字符串運算符

字符串運算符只有一個,即"+"  它的做用是將兩個字符串相加。

規則:至少有一個操做數是字符串

var box="100"+100;  //100100
var box=100+100; //200

2,逗號運算符

逗號運算符能夠在一條語句中執行多個操做。

var box=100,age=20,height=168;  //多個變量聲明
var box=[1,2,3,4,5];   //數組字面量聲明
var box={1:2,3:4,5:6}  //[object object],對象的字面量聲明

3,三元條件運算符

三元條件運算符就是if語句的簡寫形式

var box=5>4?"對":"錯";  //對,5>4返回true則把「對」賦值給box,反之
//至關於

var box="";
if(5>4){
box="對"
}
else{
box="錯";
}
相關文章
相關標籤/搜索