標籤:rip 保留 互斥 注意 ack http color nan 加法
一、JS中的運算子
1、算術運算(單目運算子)
+ 加、-減、*乘、 /除、 %取餘、++自增運算子 、--自減運算子;
>>>+:有兩種作用,連結字串/加法運算子。當+兩邊全為數字時,進行加法運算;當+兩邊有任意一邊為字串時,起連結字串的作用,連結之後的結果為字+符串。除+外,其餘符號運算時,會先嘗試將左右變數用Number函數轉為數字;
>>>/:結果會保留小數點。
>>>++:自增運算子,將變數在原有基礎上+1;
--:自減運算子,將變數在原有基礎上-1;
[a++和++a的異同點]
①相同點:無論a++還是++a,運算完以後,a的值均會+1;
②不通電:a++,先用a的值去運算,再把a+1;
++a,先把a+1,再用a+1以後的值去運算;
eg:
所以,a=5,b=5,c=7;
2、賦值運算
= 賦值號(把右邊的值賦給左邊); += -= *= /= %=
+=:a+=b; 相當於a=a+b;但是,前者的運算效率要比後者快,所以推薦使用+=的寫法;
eg:
3、關係運算
==(等於)、 ===(嚴格等於)、 !=(不等於)、!==(不全等/不嚴格等於)>、<、>=、<=
>>> 關係運算子,運算之後的結果,只能是boolean類型(true或false);
>>> 判斷一個數字是否處於某個區間,必須用&&連結
eg:
var a=3;
alert(a<10 && a>2); √
10>a>0 ×
>>> ===(嚴格等於:不但數值相同,類型也必須相同;類型不同,結果直接為false;類型相同,再進行下一步判斷;)
==(等於。類型相同,與===效果一樣。類型不同時,會先嘗試用number函數將兩邊轉為數字,然後再進行判斷。但是有個別特例,如null==false × null==undefined √)
4、條件運算子(多目運算子)
a>b?true:false
有兩個重要符號:?和:
當?前面部分運算結果為true時,執行:前面的代碼;
當?前面部分運算結果為false時,執行:後面的代碼;
冒號兩邊可以為數值,則整個式子可用於賦值。 var a = 1<2?1:2;
冒號兩邊可以為代碼塊,將直接執行代碼。 1<2?alert(1):alert(2);
多目運算子可以多層嵌套。 var a = 1<2?alert(1):(1>0?4:5);
5、位元運算符、 邏輯運算子
&&(與,and)、||(或)、!(非)
&& 兩邊都成立,結果為true
|| 兩邊有任意一邊成立,結果為true
&&和||同時存在,先算&&(&&的優先順序高)
6、運算子的優先級
7、執行個體
①判斷水仙花數
運行結果:
②四則運算器
二、JS中的分支結構
[if-else結構]
1、結構的寫法:
if(判斷條件){
//條件為true時,執行if的{}
}else{
//條件為false時,執行else的{}
}
2、注意事項:
①else{}語句塊可以根據情況進行省略。
②if和else後面的{}可以省略,但是省略{}後,if和else後面只能跟一條語句;(所以,並不建議省略{})
3、if的()中的判斷條件,支援的情況:
①Boolean:true為真,false為假;
②String:Null 字元串為假,所有非Null 字元串為真;
③Number:0為假,一切非0數字為假;
④Null/Undefined/NaN: 全為假;
⑤object: 全為真;
[多重if、階梯if結構]
1、結構寫法:
if(條件一){
//條件一成立,執行的操作
}else if(條件二){
//條件一不成立&&條件二成立,執行的操作
}else{
//上述所有條件都不成立時,執行的操作
}
2、多重if結構中,各個判斷條件是互斥的,執行選擇其中一條路執行。遇到正確選項並執行完以後,直接跳出結構,不再判斷後續分支;
[嵌套if結構]
1、結構寫法:
2、在嵌套if結構中,如果省略{},則else結構永遠屬於離它最近的一個if結構。
3、嵌套結構可以多層嵌套,但是一般不推薦超過3層。能用多重if結構的一般不推薦使用嵌套if。
JavaScript入門(二)