---
# System prepended metadata

title: 0315 複習用
tags: [五倍, 複習用, JS]

---

# 0315複習用
## node / element
### ＪＳ如何操作ＨＴＭＬ
正常來說ＪＳ是沒有辦法去處理 HTML 的資料, 而是藉由？？來操作
### HTML 載入 JavaScript
實際上 <script></script>放哪都沒差, 但因瀏覽器的什麼原因會造成 JS 檔案錯誤？但
預防上述情況的解決方案？
1. 放在??
3. 在 JavaScript 內??
4. 在 <script></script> 標籤內加 ??
    - async (非同步) 加入此屬性則會？
[可見](https://pjchender.dev/javascript/js-async-defer/)

### 操作 DOM 來控制網頁
querySelector 只會抓取到幾個元素？？ (若要抓取全部則？？), 其選擇器的寫法同？？
藉由 document.querySelectorAll 會回傳？？而 document.getElementById 的方式則會回傳？？

prototype NodeList / HTMLCollection 並非陣列而是一種集合, 但有提供一些方式可供操作, 相較之下 nodeList 比較多方法, 且使用選取器較精準方便

如果確認所抓的物件為 iterator (迭代器), 要如何處理？
Iteration 迭代 意思為？
## 預設行為
最常見的有 bottun 跟超連結, 分別為什麼行為？如何阻止？
## SET 集合
集合不同於陣列, 是另一種型態, 其特色是？？
## 型態
**Null 的 類型是 object (JS 的 老 BUG**
Typeof 沒定義的東西 會出現 undefined
typeof(typeof) 會?? typeof a 跟 type of (a) 是否有差？為什麼？

## ES6 語法

解構與 ... 請參閱 [志誠哥](https://hackmd.io/dOjDuvzjR0Wa4Z9Or8U-Bg?both) 上述 

## 抓取網路資料

### ajax
非同步 JavaScript 與 XML 是 Web 應用程式開發技術的組合，可讓 Web 應用程式更快速地回應使用者互動。

- Asynchronous：非同步
- JavaScript：使用的程式語言
- XML：Client 與 Server 交換資料用的資料與方法，近年由於 JSON 等格式的流行，使用 Ajax 處理的資料並不限於 XML。
## Fetch

### API
Application Programming Interface 的縮寫，API中文是「應用程式介面」
### JSON
JavaScript Object Notation, JS 物件表示法, 依 JS 物件所設計的, 所以一定像 JS 的物件, 特色為可供 JS 操作使用
### 實行
Fetch(API 網址), 此時會有一個回傳值為 promise, 此回傳值類似 token, 確保會有資料回傳(資料會依網速狀況傳輸), 使用 then 來指定若資料接收到後在執行何種事情, 也有資料不符預期或是未有資料回傳的情況, 這時有其他處理方式 (catch), 目前暫跳過, 可參照 4/8-try/catch/final 條目
正常來說第一次的 promise 會回傳檔案傳輸的文件格式, 需再藉由其他方式轉換該格式為能夠操作的格式, 如轉成 .json 檔, 但轉譯時間不定, 所以會獲得另一個 promise


### Fetch舉例, 但請注意此例可能不正確：
我去買便當吃飯

我去餐廳買飯(fetch(餐廳)), 餐廳會先給我號碼牌 (promise), 我先想好(.then)要用什麼餐具吃, 餐點好了(確定資料收到了)之後我就去拿我要的餐具(轉 json 格式), 預先跟同行的人說(.then)我拿完餐具 (轉完格式) 就回來吃(promise), 我再走去拿餐具, 拿到餐具後(格式解析完)就開始吃(取出解析完的資料等)