條件控制語句及表達式 運算符及表達式 1.()前面不能直接用++ console.log(++(a--)); //() 不能和++ 一起使用 2.str 與 Number值比較(字元串比較時會自動變為Number值) console.log('123A'>213);//false 自動轉為numbe ...
條件控制語句及表達式
運算符及表達式
1.()前面不能直接用++
console.log(++(a--)); //() 不能和++ 一起使用
2.str 與 Number值比較(字元串比較時會自動變為Number值)
console.log('123A'>213);//false 自動轉為number如果不能轉就會出現NaN
註意:轉Number值的時候是用的Number方法(有不能轉換的字元換會直接轉變成NAN)!
3.比較之中只要出現NAN無論是啥一般全是false
console.log(NaN==NaN);//false
4.undefined是null衍生出來了的所以是其兒子,值相等。但是類型不同所以是==而不是===
//undefined(null的派生子類) 和 null console.log(undefined==null);//true console.log(undefined===null);//false
5.字元串之間的比較就是用的ASCII碼比較的,如果有多個字母進行比較,那麼先比較第一位,哪一位的ASCII大那就誰大,如果第一個字母相同,那麼就用第二字母進行比較。跟第一個字母相同,誰的ASCII碼大誰就大,依次類推第二個字母相同就比第三個。{A:ASCII碼為 65 a: 為 97 }
//字元串和字元串比較(ASCII碼 A 65 a 96 自動進行ASCII碼的比較 比較第一位的) console.log('a'>'b');//false console.log('a'<'b');//true console.log('bAA'<'azz');//false console.log('azA'<'azz');//false
6.布爾類型的值和NULl進行比較
//boolean類型的值和null進行比較 自動轉數值(出現NaN是false) console.log(true>null);//true console.log(true>undefined);//false
7null值及undefined跟0進行比較
//undefined和0進行比較 console.log(undefined == 0);//NaN false //null是空對象引用 對應的是一個引用類型 引用類型比較的是地址 null和0進行比較 console.log(null == 0); //false
邏輯運算符
<script> var str = ''|| undefined console.log(str);//undefined var str1 ="A" ||"B" console.log(str1);//A var str2 = '' || "B"||"C" console.log(str2);//B //|| 邏輯運算規則 如果兩個都是 false取最後一個 如果兩都是true的情況下麵 取第一個true值 如果有false跟true 取第一個true值 var str3 = 10 > 20 ? '' :("123" || 30 > 20) ? '' : '456' console.log(str3);//空 //判斷10>20的正確性 如果為true則輸出空 如果是在在判斷‘123’ || 30>20 的正確性 依照||邏輯運算的規則兩個值都為true選擇第一個值所以他會輸出‘’所以判斷10>20無論是true還是false都是輸出空字元 var str6 = (10 > 20 ? '' :"123") || (30 > 20 ? '' : '456') console.log(str6);//123 //重:理解 三目運算 三目運算和高於邏輯運算優先順序 var str4 ="A" && "B" console.log(str4);//B var str5 = 'abc' && 'undefined' console.log(str5);//undefined //&& 邏輯運算規則 如果出現false 直接取false 如果全是true 就取最後一個 </script>
1.|| 邏輯運算規則 如果兩個都是 false取最後一個 如果兩都是true的情況下麵 取第一個true值 如果有false跟true 取第一個true值
2. var str3 = 10 > 20 ? '' :("123" || 30 > 20) ? '' : '456' console.log(str3);//空
//判斷10>20的正確性 如果為true則輸出空 如果是在在判斷‘123’ || 30>20 的正確性 依照||邏輯運算的規則兩個值都為true選擇第一個值所以他會輸出‘’所以判斷10>20無論是true還是false都是輸出空字元
3.&& 邏輯運算規則 如果出現false 直接取false 如果全是true 就取最後一個
4.重:理解 三目運算 三目運算和高於邏輯運算優先順序
運算符優先順序(從上到下執行)
程式控制語句
條件控制語句(只會進入其中一個條件)
if 如果(第一個條件) else if 如果(第二個條件 無限加) else 否則(只有一個
上面都不滿足的情況)
if 和 else if 同時滿足的情況下 他只會進入第一個滿足的條件
var a=10,b=20 //從上到下的順序進行的 上面只有一個進入的下麵的內容就不會執行了 if(a>b){ console.log('我是a的值為'+a) }else if(a==b){ console.log('我是b的值為'+b) }else if(a<b){ console.log('a的值小於b的值') }else{ console.log('上面的都不滿足') }var a=10,b=20 //從上到下的順序進行的 上面只有一個進入的下麵的內容就不會執行了 if(a>b){ console.log('我是a的值為'+a) }else if(a==b){ console.log('我是b的值為'+b) }else if(a<b){ console.log('a的值小於b的值') }else{ console.log('上面的都不滿足') }
是否符合標準體重
var number2 = prompt("請輸入你的身高") var number3 = prompt("請輸入你的體重") var number4 = (number2 - 108) * 2 if (!(number2 * 1) && number2 != 0) { console.log("你這個小子又在亂輸入是吧,快給我重新輸入"); } else if (!(number3 * 1)&& number3 != 0) { console.log("你這個小子又在亂輸入是吧,快給我重新輸入"); } else if (number2 < 108) { console.log("你這個小子沒有1米1是把"); } else if (number2 > 230) { console.log("你這個小子比2米三還高是把"); } else { if (number4 - 10 < number3 && number3< number4 + 10) { console.log("你的身體嘎嘎棒"); } else { console.log("你的身體體重有點問題哦"); } }其中
if (!(number2 * 1) && number2 != 0) { console.log("你這個小子又在亂輸入是吧,快給我重新輸入"); } else if (!(number3 * 1)&& number3 != 0) { console.log("你這個小子又在亂輸入是吧,快給我重新輸入"); } 這兩竄代碼,是為了防止用戶亂輸入除了數字以外的東西,因為if這個東西特殊在if的括弧裡面只有是true或者是false我們為了防止輸入數字以外的字元*1的原因是把number3的值轉換成數值,如果是數字轉化成的就只正常的數值,如果有英文字母,因為用的是Number方法,有英文字母就會變為NAN,而NAN的布爾值為false又因為是要為英文的時候運行所以要在前面加個取反符號把其值變為ture而數字0的布爾值也是false所以我們得加個值並且0這個值不進去所以加上&&number3!=0的值不等於0.switch
switch 屬於對應的值判斷 裡面的是對應的表達式(產生對應的值) 下麵的case就是一個個的值選項
switch(表達式){ case 值(常量): 操作 break; case 值: 操作 break; case 值: 操作 break; default: 當上面都不滿足的情況下才執行預設的操作 }
等級的分數
<script> var munber1 =prompt("請輸入等級ABCD") switch (munber1) { case "A":{ console.log("80-100"); break; } case "B":{ console.log("70-79"); break; } case "C":{ console.log("60-69"); break; } case "D":{ console.log("<60"); break; } default:{ console.log("error"); } } </script>
//break 跳出 跳出整個代碼塊 switch代碼以及迴圈代碼塊 如果沒有break 從頭走到底 會從滿足條件
的第一個走到default裡面
//switch 不能判斷範圍 只能對應的進行特定的值的判斷
//if 判斷範圍 在一定區間內容進行判斷(功能更加強大)
今日所學
1.運算符的運算順序
2.邏輯運算符的運算規則
3.if的用法 嵌套使用等等
4.swichd的用法,一個蘿蔔一個坑占記憶體、
5.if效率和switch效率 從一行代碼區分對應的來說 if效率會高點 多行代碼區分 switch效率會高(用
空間換時間)