-
[Act Ⅳ] 모멘텀 클론코딩 (바닐라 JS)보스 (프로젝트)/액트 Ⅳ - Momentum-Clone (바닐라 JS) 2021. 10. 30. 22:29728x90
노마드코더 강의를 들으며 모멘텀 클론코딩을 진행하였다.
결과물은 아래 주소에서 🚀
https://reload1bronze.github.io/
⚔️ 주요 포인트
1. JS에서 HTML 요소 불러오기
const loginInput = document.querySelector("#login-form input"); const toDoForm = document.getElementById("todo-form");
2. localStrorage를 이용한 데이터 저장 및 불러오기
const savedUsername = localStorage.getItem(USERNAME_KEY); function foo(e) { ... localStorage.setItem(USERNAME_KEY, username); ... }
3. classList를 활용한 콘텐츠 숨기기/보이기
.hidden { display: none; }
const HIDDEN_CLASSNAME = "hidden"; val.classList.add(HIDDEN_CLASSNAME); val.classList.remove(HIDDEN_CLASSNAME); // 간단한 on/off 기능은 toggle 메소드를 통해 구현가능 val.classList.toggle(HIDDEN_CLASSNAME);
4. Date 객체 및 setInterval 함수 활용
function getClock() { // Date 객체를 통해 현재 시간을 불러옴 const date = new Date(); // String 객체의 padStart 메소드를 활용해 01, 02, 03 ... 를 표현 const hours = String(date.getHours()).padStart(2, "0"); const minutes = String(date.getMinutes()).padStart(2, "0"); } // setInterval 적용시 지정된 시간이후 지정된 간격으로 // 함수를 호출하므로 최초 호출은 별도로 해주어야 함 getClock(); setInterval(getClock, 1000);
5. Math 객체의 메소드 활용 (random, floor, round, ceil)
- Math.random() => 0 이상 1 미만의 랜덤한 값을 반환
- Math.floor() => 괄호 안의 값에서 버림 처리
- Math.round() => 괄호 안의 값에서 반올림 처리
- Math.ceil() => 괄호 안의 값에서 올림 처리
6. JS에서 HTML 요소 생성 및 적용
function foo(newTodo) { const li = document.createElement("li"); const btn = document.createElement("button"); const span = document.createElement("span"); li.appendChild(btn); li.appendChild(span); toDoList.appendChild(li); }
7. addEventListener 메소드 작성시 event 파라미터의 target 프로퍼티 활용
function foo(event) { // 클릭 이벤트가 일어난 버튼 요소의 부모 요소 반환 const li = event.target.parentElement; } btn.addEventListener("click", foo);
8. filter 함수 활용 (기존 배열의 요소 중 조건을 만족하는 요소로 새로운 배열을 만듦)
toDos = toDos.filter((toDo) => toDo.id !== parseInt(li.id));
9. JSON.stringify() / JSON.parse()
JSON.stringify() - JavaScript 값이나 객체를 JSON 문자열로 변환
JSON.parse() - JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성
※ 참고: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON
10. getCurrentPosition() 메소드 활용하여 현재 위치 찾기
function onGeoOk(position) { const lat = position.coords.latitude; const lng = position.coords.longitude; } navigator.geolocation.getCurrentPosition(onGeoOk, onGeoError);
🏹 챌린지 과제 수행시 구글링한 내용
1. body backgroundImage, backgroundSize 변경 방법
document.body.style.backgroundImage = `url(img/${chosenImage})`; document.body.style.backgroundSize = "cover";
2. input 배경 및 테두리 제거
input { background: transparent; border: none; } input:focus { outline: none; }
728x90