今日學(xué)習(xí) 流程控制中的運算符和語句
運算符
賦值運算符
對變量進行賦值的運算符? =? 左邊必須是一個容器, *=,/=竞思,都一樣
let num = 1
//num = num + 1
num += 1
console.log(num)
一元運算符
根據(jù)所需要的表達式的個數(shù)唠雕,分為 一元二元三元運算符
// + - 是一元運算符
//自增 ++ 讓變量的值每次加1
let num = 1
++num //++在前 前置自增
num++ //后置自增
前置自增和后置自增在單獨使用時是沒有區(qū)別的蹋订。通常用于計數(shù)
如果參與運算:
1.前置自增 ++i? 先自加
2.后置自增 i++? 先運算再自加
let i = 10
i++//這是單獨使用和++i并無區(qū)別
console.log (i)
console.log(i++ + 1)
let num = 10 + 20 //二元運算符
let num = 10 + 20 + 30 //三元運算符
比較運算符
比較數(shù)值大小,是否相等
>= ,<=,==(判斷值是否相等),===(判斷類型和值是否都相等),!=
=== 全等澜术,經(jīng)常用
console.log(2=='2')
//存在隱式轉(zhuǎn)換贸辈,將'2'轉(zhuǎn)換為2,結(jié)果為true
console.log(2==='2')//false
console.log(NaN === NaN)
//NaN不等于任何包括自身
console.log (2 !== '2')//true
根據(jù)ascll碼凸椿,字符串也可以進行比較,a的ascll碼為97
邏輯運算符
且 或 非
解決多重的條件判斷
小案例
<script>
let num = +prompt('輸入一個數(shù)字')
alert((num % 4 === 0) && (num % 100 !== 0))
</script>
運算符優(yōu)先級
語句
表達式是可以被求值的代碼饰抒,寫在賦值語句的右側(cè)
num = 3 + 4
語句是可以被執(zhí)行的代碼肮砾,不一定有值
流程控制語句。
順序結(jié)構(gòu)袋坑,分支結(jié)構(gòu)仗处,循環(huán)結(jié)構(gòu)
分支語句
選擇性的執(zhí)行代碼
分支語句包含:if ,三元枣宫,switch
if語句
單分支
if(條件){
滿足條件要執(zhí)行的代碼
}
? ? ? ? if (true) {
? ? ? ? ? ? console.log('輸出語句')
? ? ? ? }
? ? ? ? if (3 > 5) {
? ? ? ? ? ? console.log('還輸出嘛')
? ? ? ? }
? ? ? ? // 所有的數(shù)字都為真婆誓,0除外
? ? ? ? if (2) {
? ? ? ? ? ? console.log('輸出語句')
? ? ? ? }
? ? ? ? //除了空字符串,其他全為真
? ? ? ? if ('mazaw') {
? ? ? ? ? ? console.log('輸出語句')
? ? ? ? }
? ? ? ? // 小案例
? ? ? ? let num = prompt('輸入成績')
? ? ? ? if (num > 700) {
? ? ? ? ? ? console.log(`恭喜進入黑馬`)
? ? ? ? ? ? document.write(`恭喜進入黑馬`)
? ? ? ? } else {
? ? ? ? ? ? console.log(`滾去學(xué)習(xí)`)
? ? ? ? ? ? document.write(`滾去學(xué)習(xí)`)
? ? ? ? }
雙分支
if(條件){
滿足條件要執(zhí)行的代碼
}else{
不滿足條件要執(zhí)行的代碼
}
小案例
<script>
let UserName = prompt('輸入用戶名')
let UserPsd = +prompt('輸入密碼')
if (UserName === 'pink' && UserPsd === 123456) {
? ? ? ? ? ? console.log('登錄成功');
} else {
? ? ? ? ? ? console.log('登錄失敗');
}
</script>
小案例
//判斷閏年也颤,潤年的條件:能被4整除洋幻,但不能被100整除,或者被400整除的是閏年翅娶,否則是平年
let year = +prompt('輸入想要判斷的年份')
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
? ? console.log('是閏年');
} else {
? ? console.log('是平年');
}
小案例
? ? let grend = +prompt('輸入你的成績')
? ? ? ? if (grend > 90) {
? ? ? ? ? ? console.log('牛逼')
? ? ? ? } else if (grend > 70) {
? ? ? ? ? ? console.log('還可以')
? ? ? ? } else if (grend > 60) {
? ? ? ? ? ? console.log('不錯')
? ? ? ? } else {
? ? ? ? ? ? console.log('真拉')
? ? ? ? }
三元運算符
比if雙分支更簡單的寫法
? :? 結(jié)合使用
語法:
條件 ? 滿足條件執(zhí)行 : 不滿足條件執(zhí)行
一般用來取值
console.log(3 > 5 ? '真' : '假');//假
小案例
? ? ? ? //用戶輸入兩個數(shù)的值文留,比較兩個值的大小并輸出大的
? ? ? ? let num = prompt('請輸入第一個數(shù)')
? ? ? ? let num1 = prompt('請輸入第二個數(shù)')
? ? ? ? console.log(num > num1 ? num : num1);
小案例
//數(shù)字補0案例
//用戶輸入一個數(shù),如果數(shù)字小于0 則在前面補0 比如09竭沫,03等
let num = prompt('請輸入整數(shù)')
let bu = num <= 9 ? '0' + num : num
console.log(bu);
switch分支語句
找到跟小括號內(nèi)=== 全等的case值厂庇,并執(zhí)行相應(yīng)代碼,若沒有全等输吏,則會執(zhí)行default 的代碼权旷。
一般用于等值判斷,不做區(qū)間判斷
? ? ? switch (key) {
? ? ? ? ? ? case value1:
? ? ? ? ? ? ? ? 代碼1
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case value2:
? ? ? ? ? ? ? ? 代碼2
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case value3:
? ? ? ? ? ? ? ? 代碼3
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case value4:
? ? ? ? ? ? ? ? 代碼4
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? break;
? ? ? ? }
//用戶輸入兩個數(shù)字,然后輸入 + - * / 任何一個可以計算結(jié)果
let num = +prompt('請輸入第一個數(shù)字')
let num1 = +prompt('請輸入第二個數(shù)字')
let num3 = prompt('請輸入+ - * / 中的其中一個')
switch (num3) {
? ? case '+':
? ? ? ? console.log(num + num1);
? ? ? ? break;
? ? case '-':
? ? ? ? console.log(num - num1);
? ? ? ? break;
? ? case '*':
? ? ? ? console.log(num * num1);
? ? ? ? break;
? ? case '/':
? ? ? ? console.log(num / num1);
? ? ? ? break;
? ? default:
? ? ? ? break;
}
循環(huán)語句
一段代碼的重復(fù)執(zhí)行
while循環(huán)
在滿足條件期間拄氯,一直循環(huán)
循環(huán)條件為真躲查,執(zhí)行循環(huán)體,再次判斷條件為真則繼續(xù)執(zhí)行译柏,為假則跳出
? ? ? ? while (循環(huán)條件) {
? ? ? ? ? ? 循環(huán)體
? ? ? ? }
while循環(huán)的三要素:
1.變量起始值
2.終止條件(沒有終止條件會一直執(zhí)行)
3.變量變化量(用于自增或自減)
? ? ? ? let i = 1
? ? ? ? while (i <= 5) {
? ? ? ? ? ? document.writeln('循環(huán)5次')
? ? ? ? ? ? i++
? ? ? ? }
小案例
? ? ? ? //求1加到100
? ? ? ? let sum = 0
? ? ? ? let i = 1
? ? ? ? while (i < 101) {
? ? ? ? ? ? sum = sum + i
? ? ? ? ? ? i++
? ? ? ? }
? ? ? ? document.write(sum)
小案例
? ? ? ? //計算1-100之間的所有偶數(shù)和
? ? ? ? let sum = 0
? ? ? ? let i = 1
? ? ? ? while (i < 101) {
? ? ? ? ? ? if (i % 2 === 0) {
? ? ? ? ? ? ? ? sum = sum + i
? ? ? ? ? ? }
? ? ? ? ? ? i++
? ? ? ? }
? ? ? ? document.write(sum)
循環(huán)的退出
break:退出循環(huán)
let i = 1
? ? ? ? while (i < 5) {
? ? ? ? ? ? if (i === 4) {
? ? ? ? ? ? ? ? break //打印完第三個后退出整個循環(huán)
? ? ? ? ? ? }
? ? ? ? ? ? console.log(`這是第${i}個`);
? ? ? ? ? ? i++
? ? ? ? }
continue:結(jié)束本次循環(huán)镣煮,開始下次循環(huán)
小案例
? ? ? ? //頁面彈出對話框 ‘你愛我嗎’,輸入‘愛’結(jié)束鄙麦,否則一直執(zhí)行
? ? ? ? while (true) {
? ? ? ? ? ? let ans = prompt('你愛我嗎典唇?')
? ? ? ? ? ? if (ans === '愛') {
? ? ? ? ? ? ? ? break
? ? ? ? ? ? }
? ? ? ? }
綜合案例
? ? <script>
? ? ? ? let count = 0
? ? ? ? while (true) {
? ? ? ? ? ? let num = +prompt(` 您目前的余額是${count}緣
? ? ? ? ? ? ? ? ? ? ? ? 請選擇你的操作
? ? ? ? ? ? ? ? ? ? ? ? ? 1.存錢
? ? ? ? ? ? ? ? ? ? ? ? ? 2.取錢
? ? ? ? ? ? ? ? ? ? ? ? ? 3.查看余額
? ? ? ? ? ? ? ? ? ? ? ? ? 4.退出`)
? ? ? ? ? ? if (num === 4) {
? ? ? ? ? ? ? ? break
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? switch (num) {
? ? ? ? ? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? ? ? ? ? let cun = +prompt('請輸入你需要存多少')
? ? ? ? ? ? ? ? ? ? ? ? count = count + cun
? ? ? ? ? ? ? ? ? ? ? ? alert(`您的余額是${count}`)
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? ? ? ? ? let qu = +prompt('請輸入你需要取多少')
? ? ? ? ? ? ? ? ? ? ? ? count = count - qu
? ? ? ? ? ? ? ? ? ? ? ? alert(`您的余額是${count}`)
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? ? ? ? ? alert(`您的余額是${count}`)
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? ? ? case 4:
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? </script>
第二天補缺
8.16補缺(js視頻第二天)
復(fù)習(xí):數(shù)字,變量名胯府,ull介衔,true,false 不需要加引號
字面量骂因⊙卓В看到就會知道是什么類型
一般情況null用于性能優(yōu)化,清空變量內(nèi)存空間
- * / 會進行隱式轉(zhuǎn)換
運算符:
賦值運算符=? 左邊必須是變量寒波,右邊為值
const聲明的常量不可以修改乘盼,可以用不可以再進行賦值和修改
+= -= *= /=? %=
i= i+ 1 簡寫為 i+=1
有幾個操作數(shù)就是幾元運算符
前置++ 和后置++ 在單獨運算的時候是沒有區(qū)別的
i存在一個值,i++和++i都會分別會存在一個值
前置++ 先自增俄烁,再運算
后置++ 先運算绸栅,再自增
比較運算符
!= 比較值不相等
!== 值不相等,數(shù)據(jù)類型不相等页屠,有一個不相等就是true
字符串比較的是ascll碼值
?
js 有五種在轉(zhuǎn)換為布爾值的時候為false:
0 NaN null undefined ''(空)
空格轉(zhuǎn)換為布爾值為true
unll 和 underfined
console.log不是表達式阴幌;有值的就是表達式
? //三元表達式 比較條件?為真時候的值:為假時候的值
? ? let bijiao = 3 > 5 ? 2 : 4
? ? alert(bijiao)
對與死循環(huán):
for (; ;) { }
? ? while (true) {? }