# 0420 JS part 2 lidemyMentorProgram5th week2 day2 **二進位** 123 十進位時 = 1x100 + 2x10 + 3x1 = 1x10^2 + 2x10^1 + 3x10^0 
( ^ 是平方 ) 所以二進位時 1010 = 1x2^3 + 1x2^1 = 10 (0x任何數都為0,所以0的部分省略) * *RGB 色碼其實就是十六進位唷* **JavaScript** 位移運算子:>> 與 << 位移運算:and (&), or (|) , not (~), xor (使用 ^ 符號,兩個都一樣的話回傳0,不一樣的話回傳1) 10 & 15 = 10 10 && 15 = 15 10 | 15 = 15 10 || 15 = 10 10 ^ 15 = 5 10 (1010),15 (1111) * 邏輯運算子:&& 和 位移運算子的 & 是不一樣的 *可以使用位移運算來檢查為奇數或偶數* = 在 JS 裡是賦值的意思不是等於 **變數var ( Variable )** 在 JS裡英文大小寫是不一樣的,所以 box 和 Box 是不一樣東西 *變數的命名:底線連結或是駝峰式,擇一就好,保持一致* 運算子 ++ 跟-- var a = 0 a = a + 5 ,也可以寫成 a+=5 ,結果都就是5,都是合理的 a += 1 的話,可以寫成 a++,a-=1 可以寫成 a— ; 注意放前面跟放後面不一樣 **變數的各種型態 ( typoof )** boolean (true / false), number , string (字串,使用單引號或雙引號包起來) object (陣列 / 物件) , undefined , function **Array 陣列** 使用中括號 [ ] 索引是從 0 開始 **Objet 物件** 使用大括號 {},內容用變數 + 冒號 + 質 裡面可以放陣列,function..都可以放 要叫出來的時候用. 叫出來 **變數的運算** *注意:型態要一樣,不然就要先寫好把其中的型態轉成一樣的,例如把字串轉成數字用 Number() 或用 parseInt()* 另外要注意的是,浮點數誤差,盡量不要使用小數 **== 和 ===** = (賦質) == (判斷) === (判斷,並加多判斷型態),推薦作判斷時都使用 3個等號的判斷,避免用到不同型態的變數 *就算內容一樣,但是是不同變數,因為記憶體位置不一樣(看不到的),所以在 === 判斷時,會出現 false* **switch case** 當選擇很多的時候不用打這麼多 else if ``` var month = 1 switch(month){ case 1 : console.log(‘一月’) break case 2 : console.log(‘二月’) break default : console.log(‘hey’) break } ``` 其實這個 case 因為有順序,可以用陣列的 index 判斷而寫的更簡潔
 (但不一定適用於其他的判斷) ``` var month_to_chinese = [‘一月’ ,’二月’ , ‘三月’ ] console.log(month_to_chinese[month -1] ) ``` 其他補充: // 或 /* 和 */ 包起來,就可以打註解