| 카테고리 | 이벤트 |
|---|---|
| Keyboard | keydown, keyup, keypress |
| Mouse | click, mousemove, mousedown, mouseup, mouseenter, mouseleave |
| Form | input, change, blur, focus, submit |
| Loading | load, unload |
element.addEventListener("click", function(event) {
console.log(event.target); // 클릭된 요소
});
<button onclick="alert('clicked!')">Click</button>
button.onclick = function() {
alert("clicked");
};
button.addEventListener("click", function(e) {
alert("clicked!");
});
form.addEventListener("submit", function(e) {
e.preventDefault(); // 제출 막기
});
[EventTarget Interface]
└─ DOM 요소, document, window 등
└─ addEventListener(type, callback[, options])
└─ callback(event)
이벤트를 수신하고 처리할 수 있는 모든 객체가 EventTarget
type: 이벤트 종류 (예: "click")
callback: 이벤트 발생 시 실행할 함수
let count = 0;
const btn = document.querySelector("button");
const display = document.querySelector("#display");
btn.addEventListener("click", () => {
count++;
display.textContent = count;
});
const input = document.querySelector("input");
const p = document.querySelector("p");
input.addEventListener("input", () => {
p.textContent = input.value;
});
const input = document.querySelector("input");
const h1 = document.querySelector("h1");
const button = document.querySelector("button");
input.addEventListener("input", () => {
h1.textContent = input.value;
});
button.addEventListener("click", () => {
h1.style.color = "blue";
});
const h1 = document.querySelector("h1");
h1.addEventListener("copy", () => {
alert("복사 금지!");
});
브라우저에 Key-Value 쌍으로 데이터 저장하는 기술
서버와 상관없이 클라이언트 측에 저장
| 구분 | sessionStorage | localStorage |
|---|---|---|
| 유지 기간 | 탭 닫힐 때까지 | 무기한 (명시적 삭제 필요) |
| 저장 용량 | 약 5MB | 약 5MB |
| 공유 범위 | 동일 출처 + 현재 탭 | 동일 출처 전체 |
| 메서드 | 설명 |
|---|---|
| setItem(key, value) | 값 저장 |
| getItem(key) | 값 불러오기 |
| removeItem(key) | 특정 값 삭제 |
| clear() | 전체 삭제 |
| key(index) | 특정 index의 key 반환 |
| length | 저장된 항목 개수 반환 |
// 저장
localStorage.setItem("name", "JS");
// 불러오기
const name = localStorage.getItem("name");
// 삭제
localStorage.removeItem("name");
// 전체 삭제
localStorage.clear();
{ "key": "value" } 형태의 문자열 기반 데이터 포맷
JavaScript 객체와 유사하지만 문자열(String)
// JS 객체 → JSON 문자열
const obj = { name: "JS", age: 20 };
const json = JSON.stringify(obj);
// JSON 문자열 → JS 객체
const newObj = JSON.parse(json);