標籤:注意 判斷 als 部分 優先順序 邏輯運算 ext bsp 結構
一、JS中的運算子1、算術運算(單目運算子) + 加、- 減、* 乘、/ 除、% 取餘、++ 自增、-- 自減 >>> +:有兩種作用,連接字串/加法運算。當+兩邊全為數字時,進行加法運算; 當+兩邊有任意一邊為字串時,起連接字串的作用,串連之後的結果為字串 除+外,其餘符號運算時,會先嘗試將左右變數用Number函數轉為數字 >>> /: 結果會保留小數點 >>> ++: 自增運算子,將變數在原有基礎上+1; --: 自減運算子,將變數在原有基礎上-1 【a++和++a的異同】 ① 相同點:無論a++還是++a,運算完後,a的值均會+1; ② 不同點:a++,先用a的值去運算,再把a+1; ++a,先把a+1,再用a+1以後的值去運算 eg:var a=3,b,c; b = a++ +2;//先用a運算,b=3+2,再把a+1,a=4 c = ++a +2;//先把a+1,a=5 再用a+1以後的值去運算,c=5+2 2、賦值運算= 賦值、 += -= *= /= %=+=:a+=b;相當於a=a+b;但是,前者的運算效率要比後者快,所以推薦使用+=寫法 3、關係運算== 等於、===嚴格等於(全等)、!= 不等、!== 不全等、>、<、>=、<=>>> 關係運算子,運算之後的結果,只能是Boolean類型;>>> 判斷一個數字是否處於某個期間,必須用&&連結; 10>a && a>0 √ 10>a>0 ×>>> ===:嚴格等於;要求不但要類型相同,值也必須相同;類型不同,結果直接為false;類型相同,再進行下一步判斷 ==:等於。類型相同,與===效果一樣;類型不同時,會先嘗試用Number函數將兩邊轉為數字再進行判斷 但是,有個別特例,如:Null==false × Null==Undefined √ NaN==NaN × 4、條件運算子(多目運算)a>b?true:false 有兩個重要符號:?和:當?前面部分,運行結果為true時,執行:前面的代碼;當?前面部分,運行結果為false時,執行:後面的代碼; 冒號兩邊可以為數值,則整個式子可用於賦值。var a=1>2?1:2;冒號兩邊可以為代碼塊,將直接執行代碼。var a=1>2?alert(1):alert(2);多目運算子可以多層嵌套。 var a=1>2?alert(1):(1<2?4:5); 5、位元運算符、 邏輯運算子&、|、~ && 與、|| 或、! 非 && 兩邊都成立,結果為true; || 兩邊有任意一邊成立,結果為true 6、運算子的優先順序() 小括弧最高 ! ++ -- 單目運算子* / %+ -> < >= <=== != && 與或同時存在時,&&比||高|| = += -= *= /= 最低的是各種賦值
eg:
水仙花數
<script type="text/javascript"> var num=prompt("請輸入一個三位正整數:"); var a,b,c; a=parseInt(num/100); b=parseInt(num/10)%10; c=num%10; var sum=a*a*a+b*b*b+c*c*c; var result=sum == num?"是水仙花數":"不是水仙花數" alert("您輸入的:"+result);</script>
二、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、結構寫法:
if(條件一){ // 條件一成立 if(條件二){ // 條件一成立&&條件二成立 }else{ // 條件一成立&&條件二不成立 } }else{ // 條件一不成立 }
2、在嵌套if結構中,如果省略{ },則else結構永遠屬於離它最近的一個if結構。3、嵌套結構可以多層嵌套,但是一般不推薦超過3層;能用多重if結構的一般不推薦使用 嵌套if。
JS中的運算子&JS中的分支結構