02-JavaScript基礎
1.核心知識點
- 運算符
- 分支語句 【重點】
- 斷點調試 [查看程序邏輯的一個技能]
2.今日學習目標
- 能夠掌握js中相關的運算符
- 能夠掌握理解算數運算符使用及特點
- 能夠掌握賦值運算符的使用及特點
- 能夠掌握一元運算符的使用及特點
- 能夠掌握比較運算符的特點,理解等于和全等于的區別
- 能夠掌握-邏輯運算符用場景及邏輯運算符的計算規律
- 能夠掌握條件判斷分支語句
- 能夠掌握switch分支語句
- 能夠掌握三元表達式分支語句
算數運算符
+ 運算總結:1. 如果是數值類型的變量相加,結果就是一個數值類型的結果2. 如果是一個字符串類型的變量相加,最后的結果就是字符串(加號起到的作用就是拼接字符串的功能)-運算總結:1. 如果是數值類型的變量相減,結果就是一個數值類型的結果2. 如果是數字的字符串相減,得到的結果也是一個數值類型結果(發生了隱式類型轉化)var n1 = '123';var n2 = '123';3. 如果是非數字的字符串相減,得到的結果是NaN*運算/運算1.如果是數值類型的變量相除,結果就是一個數值類型的結果2. 如果是數字的字符串相除,得到的結果也是一個數值類型結果(發生了隱式類型轉化)3. 如果是非數字的字符串相除,得到的結果是NaN4. 如果除數是0 ,得到的結果是 Infinity (無窮大的值)%取余(獲取余數)
課堂案例
請使用代碼完成:1. 如果今天是周六,那么100天以后是周幾?2. 寫一個程序,要求用戶先輸入雞蛋數,然后再輸入每個盒子中裝多少個雞蛋,最后實現要多少個盒子。3. 讓用戶輸入一個三位數【整數】,使用代碼分別獲取到這個三位數字百位,十位,個位上的數字。例如:用戶輸入: 456, 最后在瀏覽中分別彈出 4,5,64. 用戶任意輸入一個三位數,求這個三位數字百位,十位,個位之和。
賦值運算符
+= | -= | *= | /= | %= var a += b ; =====> 等價于 a = a+b;
一元運算符
- a++
- ++a
課堂案例
1.var a;var b=6;a=++b;請問:a的值是多少,b的值是多少。a=b++;請問:a的值是多少,b的值是多少。
2.
var a = 1; var b = ++a + ++a; console.log(b);
var a = 1; var b = a++ + ++a; console.log(b);
var a = 1; var b = a++ + a++; console.log(b);
var a = 1; var b = ++a + a++; console.log(b);
比較運算符
1. > 2. <3. >= 大于 或者 等于,只要有一個滿足即可4. <= 小于 或者 等于,只要滿足一個即可5. == 只用來比較變量中的值是否相等,不考慮數據類型6. === 用來判斷值和數據類型必須同時相等7. != 判斷值是否不相等,不考慮數據類型8. !== 判斷值和數據類型? 總結:? 通過比較運算符得到的結果只有兩個結果,一個是正確的,一個是錯誤的? 通過比較運算符得到的結果 只有 true[正確] 和 false[錯誤]
邏輯運算符
1. || 或: 條件只要有一個滿足即可總結:1. 如果條件中有一個結為true(代表有一個條件滿足了),那么通過或運算后最后的結果為true2. 如果條件中結果都不滿足,那么通過或運算后結果為false2. && 且: 要求所有的條件都必須滿足才可以總結:1. 如果條件都為真(true),那么通過且運算后最后的結果也是真(true)2. 如果條件中自少有一個條件不滿足(false),那么通過且運算后的結果為false3. ! 非(取反) :
運算符優先級(了解)
優先級從高到底1. () 優先級最高 2. 一元運算符 ++ -- !3. 算數運算符 先* / % 后 + -4. 關系運算符 > >= < <=5. 相等運算符 == != === !==6. 邏輯運算符 先&& 后||7. 賦值運算符
isNaN()
? 判斷一個變量的值 是不是數字var n1 = '123';//判斷n1是不是一個數字var res = isNaN(n1);console.log(res);// isNaN 返回的是一個 true, 不是數字// isNaN 返回的是一個false , 是一個數字
條件判斷(分支)
語法
//單條件表達式
? if ( 條件表達式【布爾類型的結果】 ) { 邏輯代碼。。。}else {邏輯代碼。。。} //多條件表達式
? if ( 條件表達式 ) {}else if ( 條件表達式 ) {}else {}
執行過程
1. 單條件條件判斷代碼執行過程:? 先進行表達式結果判斷 ? 如果結果是true, 程序只會執行if中的語句,不會執行else中的語句? 如果結果是false, 程序只會執行else中的語句,不會執行if中的語句
斷點調試
課堂案例
1. 接收用戶輸入兩個數字,求兩個數的最大數。2. 接收用戶輸入一個數字,判斷一個數是偶數還是奇數3. 當點擊確定,彈出消息提示“您已退出” 當點擊取消 彈出消息“您已取消退出”作業:1. 判斷一個年份是閏年還是平年閏年:能被4整除,但不能被100整除的年份 或者 能被400整除的年份2. 依據一個人的年齡判斷是否成年(大于18歲)3. 一個加油站為了鼓勵車主多加油,所以加的多有優惠。92號汽油,每升6元;如果大于20升,那么超出部分每升5.9;95號汽油,每升7元;如果大于30升,那么超出部分每升6.95編寫JS程序,用戶輸入自己的汽油編號,然后輸入自己加多少升,彈出價格。4. 收先接收用戶輸入的用戶名,判斷該用戶名是否是admin,如果不是直接程序終止,如果是那么再次提示讓用戶輸入密碼,如果密碼是88888,那么提示登錄成功,否則提示登錄失敗。5.分數轉換,把百分制轉換成ABCDE <60 E 60-70 D 70-80 C 80-90 B 90 - 100 A
三元運算
語法
表達式 ? 結果1 : 結果2
執行過程
? 先判斷表達式的結果是 true還是false? 如果結果是true ,那么代碼執行 結果1? 如果結果是false,那么代碼執行 結果2? ====> 相當與條件判斷中的if: =====> 相當于else
課堂案例(使用三元運算的方式解決)
1:接收用戶輸入的數字,判斷是奇數還是偶數
2:當點擊確定,彈出消息提示“您已退出” 當點擊取消 彈出消息“您已取消退出”
3:從兩個數中找最大值
4:從三個數字中找最大值
switch語句
語法
switch ( 變量 ) {case 值1:代碼語句..break;case 值2:代碼語句...break;default: break;
}
執行過程
總結:1. 如果在程序中要表示一個范圍,那么推薦使用條件判斷2. 如果程序中表示的是一個具體的值, 可以用switch語句注意://1. switch 后面的變量數據類型必須和 case 后面的值數據類型保持一至//2. break語句必須加
課堂案例
? 根據用戶輸入月份,顯示對應的季節(例如:3,4,5為春季)? 根據用戶輸入數字,顯示對應星期數例如:用戶輸入數字1 ,顯示 周一? 李四的年終工作評定,如果定為A級,則工資漲500元,如果定為B級,則工資漲200元,如果定為C級,工資不變,如果 定為D級工資降200元,如果定為E級工資降500元.
設李四的原工資為5000,請用戶輸入李四的評級,然后顯示李四來年的工資.
循環
? 循環: 重復的再做一件事件? 當條件滿足的時候,執行循環代碼? 條件不滿足的時候,不會執行循環代碼
語法
while(條件表達式) {代碼(循環體)
}
執行過程
1. 先條件判斷結構是 true 還是 false2. 如果是true,那么程序會一直執行循環體中的代碼3. 如果條件為false,那么程序會立即跳出循環體代碼結束執行
語法
do {循環體代碼
}while(條件表達式)
執行過程
? 先執行循環體代碼? 然后判斷條件? 如果條件為true,繼續執行循環體代碼? 如果條件為false,循環體代碼立即結束,跳出循環與while循環的區別:1. 如果條件不滿足,do while循環會比while循環多執行一次2. 如果條件滿足,do while循環和while循環執行的次數是一樣一樣的。
for 循環
語法
for(變量初始化; 條件 ; 變量自增) {}
執行過程
continue語句執行及特點
? 立即跳出本次循環,繼續下一次循環(本次循環體 continu 之后的 代碼 就都少執行這一次)? 通俗理解: 吃5個包子,第3個掉地下了,就扔掉第3個,繼續吃第4個第5個包子。
break語句執行及特點
? 理解跳出整個循環(循環結束),開始執行 循環后面的代碼? 通俗理解: 吃5個包子,吃到第3個吃飽了,就不再吃后面的包子。