三元運算子、取非、異或、條件語句、迴圈
三元運算子
var a=3;
bar b=a ? 1:0;
如果a>2 則讓b=1,否則b=0;
var b=條件 ?結果1:結果2
如果條件轉換為布林值時是true,則把結果1返回,否則把結果2返回
當三元運算子返回的結果是一個true或者false時可以不使用三元運算子直接返回結果即可
~ +1取非
作用:當值為為-1時,位非這個值,結果就是0,轉換位布林值就是false
任何值在使用雙位非後結果都是整數,如果有小數,則自動捨棄小數位
如果是非數值,現在轉換位數值,在做~~取整,如果轉換後的值是NaN,取整的結果就是0
^異或 a^b=c c^b=a
加密解密
條件語句
語言中分為三種結構形態,1、順序 2、條件 3、迴圈
1.順序
2.條件
遇到條件時完成某個內容,然後在繼續向後,如果遇到條件不滿足的情況下不執行這些語句直接執行條件後面的內容
3.迴圈
遇到條件滿足時,不斷重複執行一些語句,直到條件不滿足時才執行迴圈語句後面的內容
語句塊 指多條程式碼內容
條件
if(表示式){
語句塊
}
表示式可以是任何內容,不管表示式的結果是什麼,都會隱式轉換為布林值
當滿足一個條件後,在進行下一個條件的判斷可以使用巢狀條件
並列式條件每個都判斷,如果滿足每個都進入
巢狀式條件,滿足最外層的才可進入裡層判斷,然後判斷在進入,當不滿足時,不繼續向內判斷
如果表示式轉換為布林值時
這種寫法與三元表示式相同
if(表示式){
語句塊1
}else{
語句塊2
}
在程式碼中如果語句塊1只有一句話,我們可以省略{}
如果條件語句沒有帶{}那麼條件只針對後面的第一語句
多分枝語句,表示式1這個條件不能覆蓋後面的條件,前面的條件不能覆蓋後面的條件
多分支條件結構
表示式並不會自動轉換成布林值
判斷表示式是否絕對等於值1,如果相等, 執行語句塊1
....
否則,以上都不相同時,預設執行語句塊4 default就是預設執行的內容
break,如果語句塊執行遇到break,就跳出這個switch多分支條件結構後面
如果語句塊沒有遇到breaka,不會再次判斷表示式是否等於值2,直接跳轉語句塊2
Switch(表示式){
case 值1:
語句塊1
break;
default:
語句塊4
迴圈
表示式會被隱式轉換為布林值,如果布林值為true的時候,則重新進入執行,迴圈執行的語句塊
while(表示式){
迴圈執行語句塊
}
迴圈構成三要素 變數的初始值 迴圈的條件 變數不斷
break跳出 當滿足條件,使用break時,會跳出迴圈不再進行迴圈執行迴圈後面的語句
continue繼續 當滿足條件使用continue跳出本次迴圈,不在執行本次continue後面的語句,繼續判斷條件執行下一次迴圈,要注意因為continue會跳出再次在進入,因此需要確定變數在跳出前是否向條件外變化