🏷️ 챕터 1 - 기본
1. console.log()
콘솔 출력 함수
console.log("출력 예제");
2. alert(), prompt(), confirm()
브라우저 기본 팝업 함수
alert("알림창 띄우기");
let name = prompt("이름을 입력하세요");
console.log("입력한 이름:", name);
let isDelete = confirm("정말 삭제하시겠습니까?");
console.log(isDelete); // 확인:true, 취소:false
3. 문자열 관련 메서드
3-1. length
let txt = "Hello";
console.log(txt.length); // 5
3-2. toUpperCase(), toLowerCase()
console.log("hello".toUpperCase()); // HELLO
console.log("WORLD".toLowerCase()); // world
3-3. includes()
console.log("javascript".includes("java")); // true
3-4. slice()
let str = "abcdef";
console.log(str.slice(0, 3)); // abc
4. 배열 관련 메서드
4-1. push(), pop()
let arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1,2,3,4]
arr.pop();
console.log(arr); // [1,2,3]
4-2. shift(), unshift()
arr.shift();
console.log(arr); // [2,3]
arr.unshift(0);
console.log(arr); // [0,2,3]
4-3. forEach()
["a", "b", "c"].forEach(item => {
console.log(item);
});
4-4. map()
let nums = [1, 2, 3];
let doubled = nums.map(n => n * 2);
console.log(doubled); // [2,4,6]
4-5. filter()
let even = [1, 2, 3, 4].filter(n => n % 2 === 0);
console.log(even); // [2,4]
5. 수학 관련 (Math 객체)
5-1. Math.random()
console.log(Math.random()); // 0~1 사이
5-2. Math.floor(), Math.ceil(), Math.round()
console.log(Math.floor(4.9)); // 4
console.log(Math.ceil(4.1)); // 5
console.log(Math.round(4.5)); // 5
5-3. 랜덤 정수 구하기
let random = Math.floor(Math.random() * 10) + 1; // 1~10
console.log(random);
6. 날짜 관련 (Date 객체)
오늘 날짜 출력
let today = new Date();
console.log(today.toDateString()); // 예: Mon Jul 22 2025
7. JSON 관련
객체를 문자열로 변환 / 다시 객체로 변환
let obj = { name: "홍길동", age: 20 };
let json = JSON.stringify(obj);
console.log(json); // {"name":"홍길동","age":20}
let parsed = JSON.parse(json);
console.log(parsed.name); // 홍길동
🏷️ 챕터 2 - 심화
1. 이벤트 관련
1-1. addEventListener()
const btn = document.querySelector("#btn");
btn.addEventListener("click", () => {
alert("버튼이 클릭되었습니다!");
});
1-2. setAttribute()
const img = document.querySelector("#photo");
img.setAttribute("src", "image.jpg");
1-3. classList.add(), classList.remove(), classList.toggle()
const box = document.querySelector(".box");
box.classList.add("active"); // 클래스 추가
box.classList.remove("active");// 클래스 제거
box.classList.toggle("active");// 토글 (있으면 제거, 없으면 추가)
2. 타이머 관련
2-1. setTimeout()
setTimeout(() => {
console.log("3초 후 실행됩니다");
}, 3000);
2-2. setInterval() / clearInterval()
let count = 0;
let timer = setInterval(() => {
console.log("카운트:", ++count);
if (count === 5) clearInterval(timer); // 5가 되면 멈춤
}, 1000);
3. 비동기 통신 (기초)
3-1. fetch()
fetch("https://jsonplaceholder.typicode.com/posts/1")
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("에러:", error));
3-2. async / await
async function getData() {
try {
const response = await fetch("https://jsonplaceholder.typicode.com/posts/1");
const data = await response.json();
console.log(data);
} catch (error) {
console.error("에러:", error);
}
}
getData();
4. 객체 관련
4-1. Object.keys(), Object.values()
const user = { name: "홍길동", age: 20 };
console.log(Object.keys(user)); // ["name", "age"]
console.log(Object.values(user)); // ["홍길동", 20]
5. 배열 고급 (정렬/찾기)
5-1. find(), findIndex()
const arr = [10, 20, 30, 40];
console.log(arr.find(n => n > 25)); // 30
console.log(arr.findIndex(n => n > 25)); // 2
5-2. sort()
let nums = [3, 1, 4, 2];
nums.sort((a, b) => a - b);
console.log(nums); // [1,2,3,4]
6. 로컬 스토리지
브라우저에 데이터 저장 → 새로고침해도 유지
localStorage.setItem("user", "홍길동");
console.log(localStorage.getItem("user")); // 홍길동
localStorage.removeItem("user"); // 삭제
🏷️ 챕터 3 - 이벤트 리스너
1. 마우스 관련
1-1. click
element.addEventListener("click", () => {
console.log("클릭되었습니다!");
});
1-2. dblclick
element.addEventListener("dblclick", () => {
console.log("더블 클릭!");
});
1-3. mouseenter / mouseleave
element.addEventListener("mouseenter", () => {
console.log("마우스가 들어왔습니다.");
});
element.addEventListener("mouseleave", () => {
console.log("마우스가 나갔습니다.");
});
1-4. mousemove
element.addEventListener("mousemove", (e) => {
console.log("X:", e.clientX, "Y:", e.clientY);
});
2. 키보드 관련
2-1. keydown / keyup
document.addEventListener("keydown", (e) => {
console.log("누른 키:", e.key);
});
document.addEventListener("keyup", () => {
console.log("키에서 손을 뗐습니다.");
});
2-2. keypress (※ 최근엔 keydown 사용 권장)
document.addEventListener("keypress", (e) => {
console.log("입력된 키:", e.key);
});
3. 입력 폼 관련
3-1. input
const input = document.querySelector("#name");
input.addEventListener("input", () => {
console.log("입력값:", input.value);
});
3-2. change
- 값이 바뀌고 포커스를 잃었을 때 실행 (주로 select, checkbox에서 사용)
const select = document.querySelector("#city");
select.addEventListener("change", () => {
console.log("선택된 값:", select.value);
});
3-3. submit
const form = document.querySelector("#myForm");
form.addEventListener("submit", (e) => {
e.preventDefault(); // 기본 제출(새로고침) 방지
console.log("폼이 제출되었습니다!");
});
4. 윈도우/문서 관련
4-1. load
window.addEventListener("load", () => {
console.log("페이지가 완전히 로드되었습니다.");
});
4-2. scroll
window.addEventListener("scroll", () => {
console.log("스크롤 위치:", window.scrollY);
});
4-3. resize
window.addEventListener("resize", () => {
console.log("창 크기:", window.innerWidth, window.innerHeight);
});
5. 기타 유용한 이벤트
5-1. contextmenu
element.addEventListener("contextmenu", (e) => {
e.preventDefault(); // 기본 메뉴 막기
console.log("오른쪽 클릭됨");
});
5-2. focus / blur
const inputBox = document.querySelector("#input");
inputBox.addEventListener("focus", () => {
console.log("포커스 들어옴");
});
inputBox.addEventListener("blur", () => {
console.log("포커스 벗어남");
});