JSON.stringify () : javaScript 값이나 객체를 string(문자열)으로 만들어줌
JSON.parse() : JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성함
fliter() : 지우고 싶은 (배열)아이템을 제외함, 넣고 싶은 아이템은 반드시 true로 리턴함, filter 는 원래 array를 변경하지 않고 새 array를 생성함
// filter 예제
function abc(item) {
return item !==3
}
[1,2,3,4,5].filter(abc);
// 결과 [1,2,4,5]
parseInt() : 문자열을 숫자로 바꿔줌
to do list 만들기
const toDoForm = document.querySelector("#todo-form");
const toDoInput = toDoForm.querySelector("input")
const toDoList = document.querySelector("#todo-list");
const TODOS_KEY = "todos"
let toDos = [];
function saveTodos () {
localStorage.setItem(TODOS_KEY, JSON.stringify(toDos));
}
function deleteTodo(event) {
const li = event.target.parentElement;
li.remove();
toDos = toDos.filter( (toDo) => toDo.id !== parseInt(li.id));
saveTodos();
}
function paintTodo(newTodo) {
const li = document.createElement("li");
li.id = newTodo.id;
const span = document.createElement("span");
span.innerText = newTodo.text;
const button = document.createElement("button");
button.innerText = "❌";
button.addEventListener("click", deleteTodo)
li.appendChild(span); // append 는 제일 마지막에 적어줘야함
li.appendChild(button);
toDoList.appendChild(li);
}
function handleToDoSubmit (event) {
event.preventDefault();
const newTodo = toDoInput.value; // input의 값을 새로운 변수에 저장
toDoInput.value =""; // 주의! 값을 비웠다고 해서 new ToDo의 값이 비워지는 건 아님!
const newTodoObj = {
text:newTodo,
id: Date.now()
}
toDos.push(newTodoObj);
paintTodo(newTodoObj);
saveTodos();
}
toDoForm.addEventListener("submit", handleToDoSubmit);
const savedToDos = localStorage.getItem(TODOS_KEY)
if (savedToDos !== null) {
const parsedToDos = JSON.parse(savedToDos);
toDos = parsedToDos;
parsedToDos.forEach(paintTodo);
}
분명 중간까지는 잘 따라갔는데...
어디서 흐름을 놓쳐버린걸까... (흐린눈)
다시 봐야겠따...
'개발공부 > JavaScript 강의' 카테고리의 다른 글
☕ 문벅스 카페 메뉴 앱 만들기 #01 (에스프레소 메뉴판 만들기) (0) | 2021.12.30 |
---|---|
[노마드코더] 바닐라 JS로 크롬 앱 만들기 #07 (weather) (0) | 2021.11.10 |
[노마드코더] 바닐라 JS로 크롬 앱 만들기 #05 (quotes, background) (0) | 2021.11.06 |
[노마드코더] 바닐라 JS로 크롬 앱 만들기 #04 (clock) (0) | 2021.11.06 |
[노마드코더] 바닐라 JS로 크롬 앱 만들기 #03 (greetings) (2) | 2021.11.06 |