---
# System prepended metadata

title: 20230617 JavaScript
tags: [前端課程筆記]

---

電腦的世界都是Data，以binary(二進位制)的方式儲存
![](https://hackmd.io/_uploads/Hk0dSJMO3.png)
每一個0/1稱為bit

範例：
(1)010110101轉換為10進位(decimal)
![](https://hackmd.io/_uploads/r1NaHyMO2.png)
(2)13轉換成2進位
```
13/2=6...1
6/2=3...0
3/2=1...1
1/2=0...1
1101
```
#### 在html裡寫JavaScript
```
<body>
<h1>JavaqScript</h1>
<script type="text/javascript">
 //my JavaScript code
</script>
</body>
```
#### 在html裡載入JavaScript
![](https://hackmd.io/_uploads/r1eHwkfOh.png)

#### 註解
```
//單行註解

/*
多行
註解
*/
```
#### 分號結尾
`let name = "Jami";`
#### 單執行序語言：從上往下執行

### 變數
#### 宣告方式
`let 變數名稱 = 值;`
用來儲存資料，進行運算的基本單位
memory如同放有很多抽屜的大櫃子，我們需要先在抽屜外面貼標籤(宣告變數)然後再放東西進抽屜(賦值)
![](https://hackmd.io/_uploads/ryTnyLru3.png)
#### 變數取名
變數取名很重要，否則看抽屜標籤會不知道裡面放什麼東西
1. 以camelCase方式取名，大小寫視為不同
如：element, myElement, myFirstElement
2. 第一個字母為英文/底線/錢字號
如：element,_element,$element
3. 不可使用保留字或關鍵字
如：case,for,if
#### 變數型別
#### number
1. 轉為64-bits儲存
2. 整數：integer, short, long(如:a=8)
3. 浮點數：float(a=8.8)
4. 指數：exponent a=8.8e8
5. 無限：a=Infinify a-1仍會是Infinity
6. NaN：not a number需要透過一些操作才能達成(如：0/0、Infinity-Infinity)
#### boolean
1. true(小寫t)
2. false(小寫f)
#### string
字串，被單引號，雙引號包夾
![]![](https://hackmd.io/_uploads/HJNVIuS_3.png)

#### Escape characters(跳脫字元)
當字串以單引號包夾，裡面又需要顯示單引號時，需使用跳脫字元(反斜線)，才不會造成錯誤
![](https://hackmd.io/_uploads/H1nxLdSOh.png)
#### 字的儲存是依照Ascii Code轉換後進行儲存的
![](https://hackmd.io/_uploads/S1sL8uSu2.png)
#### 單引號、雙引號、反引號比較
1. 單引號與雙引號無差異
2. 反引號若單純包一行字串，也與單雙引號無差異
3. 反引號可換行，單雙引號不可
![](https://hackmd.io/_uploads/HkYZPurO2.png)
單雙引號需使用換行符號才可進行換行
![](https://hackmd.io/_uploads/rJ_iDdrO2.png)
4. 反引號可作為template literals
可以把變數(或一些運算)放在`${}`裏面
![](https://hackmd.io/_uploads/H1PotOBO2.png)
單雙引號需使用字串相加方法才可放入變數
![](https://hackmd.io/_uploads/HJzPcdr_h.png)
![](https://hackmd.io/_uploads/ryknc_HO3.png)
undefined vs. null vs. NaN
undefined
代表"沒有意義"或"沒有值"
產生方式：宣告變數沒有給值，或是直接給undefined
![](https://hackmd.io/_uploads/Hk3NodBu3.png)
![](https://hackmd.io/_uploads/HJrSsuSdn.png)
型態：undefined
![](https://hackmd.io/_uploads/SyyciuH_2.png)
null
代表"空值"
產生方式：需告變數並把值給null
型態：object
![](https://hackmd.io/_uploads/Syb0iOS_3.png)
NaN
無法表示的數值
產生方式：必須在數字上透過特殊的操作產生
![](https://hackmd.io/_uploads/HyEMh_B_2.png)
![](https://hackmd.io/_uploads/SJQV3OSdh.png)


---

作業：
![](https://hackmd.io/_uploads/BkIkaIO_2.png)

1. 101111010
2. 1396
3. ![](https://hackmd.io/_uploads/SycCTUOdn.png)
