---
# System prepended metadata

title: 0420 JS part 2

---

# 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] )
```



其他補充：

// 或 /* 和 */ 包起來，就可以打註解
