是各類變量、數值、運算符的綜合體。最簡單的表達式是一個字面量或者變量。數組
只能操做一個值的運算符叫一元運算符。函數
其餘類型應用一元運算符的規則。編碼
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="錯"; }