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