# 0315複習用
## node / element
### JS如何操作HTML
正常來說JS是沒有辦法去處理 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), 我再走去拿餐具, 拿到餐具後(格式解析完)就開始吃(取出解析完的資料等)