JavaScript 02 運算子,分支結構
阿新 • • 發佈:2022-03-24
一元換算符
字串型別 對於字串,來說自增或自減會自動進行型別轉換
1.var str = '10' 自動轉換 從string轉為number
2.str++ NaN 對於轉化不成功的string型別資料會變為NaN
3.關於布林型別
1為true 0為false
number型別 非0和NaN就是true 自動進行轉換
4.關於null型別
自動轉換對應Boolean型別 然後再從Boolean轉為Number
5.關於undefined
undefined轉換不成功 NaN
6.關於Number型別
一元換算符只能和變數一起 不能出現其他的換算符
進行++ 或者 -- 不管++是前置還是後置都是先轉換為number
比較運算子(關係運算符)
比較運算子 == 返回的都是boolean型別 要麼是true 要麼是false
console.log(typeof null)//object
console.log(typeof undefined) //undefined
>大於 小於<
boolean 自動轉換 true對應1 number型別轉布林型別
null不會自動轉為boolean型別 undefined也不會自動轉換布林型別
==比較的是值
number比較 直接比較大小
number 和 Boolean比較 會把Boolean轉為number再比(0,1)
如果number型別和字串型別比較 如果字串裡面儲存的是數值 那麼對應的就是數值比較
如果對應的字串裡面儲存的是字串 會自動轉為number型別 轉不了就是NaN(NaN和任何比都是false)
console.log('a'>1) // NaN //false
字串跟字串比較 比較的是ascii碼 一套固定的編碼 每個字母都有一個對應的編碼值(區分大小寫)
//a 97 //A 65 //0 48
console.log('a'>'b') //false
console.log('a'>'B') //true
>= <= 只要滿足一個就是true
恆等 === 比較值還要比較地址 == 只是比較值
NaN 特性 不能進行比較 返回結果false
邏輯運算子
與 && 同true則為true 其他都是false
& 斷路與 (效率低,不用)
console.log('A'<'a' && 2>1) // true
console.log('A'<'a' && 2<1) // false
或 || 一個為 true 就是true
| 斷路或 (效率低,不用)
console.log('A'<'a' || 2<1) // true
console.log('a'>'b' || 1>2) // false
非 ! true變false false變true
console.log( ! ('a'<'b') ) ;//false
console.log( ! ('a'>'b') ); //true
//undefined轉為number 為NaN
//undefined值 不需要轉換 != ===
var num1 , num2=10
console.log(num1!=num2 && num1<num2); // false
console.log(num1!=num2 || num1<num2);//true
三元運算子 三目運算子
布林型別表示式 ? true的結果:false的結果
console.log(!0?10:20); //10
console.log(1!=1?10:20) // 20
var num = 'a'>'B'?12+'3':45/2
console.log(num); //123
console.log(typeof num); //string
分支結構
瀏覽器的解析結構順序為 從上到下 從左之右
分支結構 多個分支 進行其中一個
if(布林型別表示式){
分支一
}else{
不滿足上述條件進入的分支
}
一旦進行其中一個分支就不會再進行下一個
分支塊裡面執行的語句只有第一句
switch
switch屬於分支結果
if裡面的表示式為布林型別 Boolean表示式
switch的值表示式 有確定的值
switch case 一起使用
switch(值表示式){
case 值1:
case 值2:
case 值3:
default:預設的
}