# 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), 我再走去拿餐具, 拿到餐具後(格式解析完)就開始吃(取出解析完的資料等)