---
# System prepended metadata

title: 第六週作業
tags: [HTML助教作業]

---

###### tags: `HTML助教作業`

# 第六週作業

這禮拜要教同學的是localStorage和sessionStorage，而這次的作業應用也算常用，所以要請同學專心學，另外因為localStorage一個名稱只能裝一個值的關係，所以這邊也要先跟同學介紹JSON格式，因為作業會用到把一筆表單的資料先透過 **JSON.stringify() 轉成JSON字串，之後存進localStorage**，這就等同於**把字串存進localStorage而已**，只是我們存的是JSON字串，所以之後可以再利用**JSON.parse()把JSON字串轉成JSON格式**。

因為JavaScript的部分也上了兩、三個禮拜左右了，所以現在同學應該要很熟悉DOM的操作，在教學的時候，也可以適時地加上一些**ES6,7,8**的語法並跟同學們解釋，像是**Template Literals**、**Destructuring Assignment**等。

而本週的重點是localStorage，localStorage用的好可以增加UX體驗，另外也要小心localStorage可能會有社交攻擊的風險。

***學習重點***
- 學習localStorage和sesstionStorage用法和使用時機
- 學習如何讓多筆資料存進單一Storage
- 認識JSON格式

***重點語法***
- localStorage
- sessionStorage
- JSON.stringify
- JSON.parse

***作業要求***
設計一個表單(有CSS佳)，表單至少要有4個input，將所有input輸入文字後按下submit按鈕送出，送出後文字要顯示在表單底下，因送出的資料會存進localStroage，所以重新整理畫面以後，剛剛送出的文字也還會出現在畫面不會消失，這邊要檢查程式碼看有沒有人是利用4個不同名稱的localStorage來儲存資料的，要是有的話不能算通過。

<iframe src="https://codesandbox.io/embed/diliucizuoye-4gjz3?fontsize=14&hidenavigation=1&theme=dark"
     style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
     title="第六次作業"
     allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
     sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
   ></iframe>