一、一元運算符 註:()不能與++一起使用,因為優先順序一樣,控制台會報錯,如果寫一行,要分開寫 二、比較 1、字元與數值進行比較-->會自動轉換成number,若轉換不成功,就是NaN,結果就是false 2、只要看到NaN,就是false(NaN==NaN,結果就是false) 3、字元串和字元串 ...
一、一元運算符
註:()不能與++一起使用,因為優先順序一樣,控制台會報錯,如果寫一行,要分開寫
二、比較
1、字元與數值進行比較-->會自動轉換成number,若轉換不成功,就是NaN,結果就是false
2、只要看到NaN,就是false(NaN==NaN,結果就是false)
3、字元串和字元串之間的比較(轉成ASCII碼進行比較,A:65,a:65,比較第一位)
eg:
' a ' > ' b ' 結果為false
' bAA ' < ' azz ' 結果為false
4、undefined和null進行比較(undefined是null的派生子類)
undefined==null 結果為true
undefined===null 結果為false
5、boolean類型的值與null進行比較(自動轉數值)
eg:
true>null 結果為true
true>undefined 結果為false(undefined->NaN)
6、null和0 的比較(null是空對象的引用)
eg:
null==0 結果為false(null對應的是一個引用類型,引用類型比較的是地址)
註:null在進行>和<等會轉成number類型,但是在==時不會轉成number類型
7、在同時有轉換和比較的時候,會攸縣轉換再進行比較
三、邏輯運算符
&&短路與
&斷路與
&&所有的同時滿足才為真,只要前面有一個假,後面就不會看了
&無論真假,他都要看完全部
所以比較二者而言,第一種效率更加高一點
||短路或
|斷路或
||有一個true就是true,前面只要出現true,就不用看後面了
|一樣要看完全部
第一種效率高
!取反 自動轉成布爾類型
' 短路或 '具體操作
1、如果兩個都是false,取最後一個值
2、如果兩個都是true情況下,取前面那個為true的結果
三目運算符(三目運算符的優先順序要低於邏輯運算符的優先順序)
四、程式控制語句
1、邏輯分支if
結構:
順序:從上朝下執行的代碼就是順序
分支(選擇):根據不同的情況,執行對應代碼
迴圈:重覆做一件事情
邏輯if-單分支
if條件判斷語句的寫法:
if (表達式){
執行語句
}
註:
1、if後面的()不能省略。
2、一條執行語句可以省略{}, 多條時不能省略{}, 建議不管是一條還是多條都寫上{}
3、當括弧內的表達式結果成立(為true時),則執行大括弧內的語句,否則不執行。
if條件多分支語句的寫法:
if(表達式){
執行語句1
}else if(表達式2){
執行語句2
}
..........
else{
執行語句n
}
註:從上往下,滿足哪個條件就執行其相對應的語句,都不滿足時,執行最後的else的語句,只能
進入其中之一。
if 的嵌套(嵌套if時, 內層的每一對if-else代碼要縮進且對齊;編寫代碼時,else要與最近的if配對。)
2、邏輯分支switch
語法:
switch(表達式) {
case 常量1: 語句; break;
case 常量2: 語句; break;
…
case 常量n: 語句; break;
default:語句; break;
}
註:break的作用:是跳出switch結構,如果沒有break,則繼續執行下麵分支的的語句(而不進行
判 斷)。註意case穿透,要加break