1. 程式人生 > >JS中的運算符和JS中的分支結構

JS中的運算符和JS中的分支結構

-1 amp 算術 res 同時 其余 字符 3層 fine

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=4;
c = ++a +2;//先把a+1,a=5,再用a+1以後的值運算。

2、賦值運算
=賦值 += -= *= /= %=
+=: a +=b;相當於a=a+b;但是前者的運算效率要比後者快,所以推薦使用+=;

3、關系運算
==等於、=== 全等、 !=不等、!==不全等、>、<、>=、<=
①關系運算符,運算之後的結果,只能是Boolean類型;
②判斷一個數字是否處於某個區間比須用&&鏈接;
alert(a<10 && a>0);√ 10>a>0 ×
===:嚴格等於,要求不但類型相同,值也必須相同;類型不同,結果直接為false;類型相同,在進行下一步判斷;
==:等於。類型相同,與===效果一樣。類型不同時會先嘗試將兩邊轉為數字Number再進行判斷;
但是有個別特例 ,如:Null==flase × 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、位運算符、 邏輯運算符
&&與、||或、!非
&&兩邊都成立結果為true
||兩邊有任意一邊成立,結果為true

6、運算符的優先級
() 小括號最高
! ++ -- 單目運算符
* / %
+ -
> < > = <=
== !=
&& //與或同時存在時,&&比||高
||
= += -= *= /= //最低是各種賦值

JS中的分支結構

[if-else結構]
1.結構的寫法:
if(判斷條件){
條件為true時,執行if的{}
}else{
條件為false時,執行else的{}
}


2、註意事項:
①else{}語句塊,可以根據情況進行省略。
②if和else後面的{}可以省略,但是省略{}後,if和else只能跟一條語句,所以並不建議省略{}。


3、 if的()中的判斷條件,支持的情況:
①Boolean :true為真,false為假;
②String : 空字符串為假,所有非空字符串為真;
③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;

做簡單計算器的方法:

<script>
var a =parseFloat(prompt("請輸入第一個整數:"));
var b =prompt("請輸入符號:");
var c =parseFloat(prompt("請輸入第二個整數:"));

var result = 0 ;
result = b=="+"?a+c:result;
result = b=="-"?a-c:result;
result = b=="*"?a*c:result;
result = b=="/"?a/c:result;
alert("結果為:"+result);
</script>

<script>
var num1 =parseFloat(prompt("請輸入第一個整數:"));
var fu =prompt("請輸入操作字符");
var num2 =parseFloat(prompt("請輸入第二個整數:"));

if(fu=="+"){
alert(num1+num2);
}else{
if(fu=="-"){
alert(num1-num2);
}else{
if(fu=="*"){
alert(num1*num2);
}else{
alert(num1/num2);
}
}
}
</script>

JS中的運算符和JS中的分支結構