웹 프로그래밍(HTML5+CSS+javaScript) - 3 (Javascript)

2025. 10. 27. 05:25·web/html

JavaScript 필수 정리 (프론트엔드용)


1. 기본 문법 (기초 중의 기초)

항목설명예시
변수 선언 데이터를 저장 let x = 10; const PI = 3.14;
자료형 숫자, 문자열, 불리언, 배열, 객체 등 number, string, boolean, object
연산자 +, -, *, /, %, ===, &&, `  
템플릿 문자열 문자열 안에 변수 넣기 `Hello, ${name}!`
조건문 분기 처리 if, else if, else, switch
반복문 반복 실행 for, while, for...of, forEach()

 


 

 

 

2. 함수 (Function)

구분설명예시
선언형 함수 기본적인 함수 function greet() { console.log("Hi!"); }
익명 함수 이름 없는 함수 const greet = function() { ... }
화살표 함수 간결한 표현 const add = (a, b) => a + b;
매개변수 기본값   function greet(name = "Guest") { ... }
return 문 함수의 반환값 return result;

 

 

 

 


 

 

3. DOM 조작 (웹 인터랙션의 핵심)

HTML 요소를 선택하고, 속성 변경, 이벤트 연결 등을 수행하는 부분

기능설명예시
요소 선택   document.querySelector('div'), getElementById('btn')
내용 변경   element.textContent = "Hello";, innerHTML
속성 변경   element.setAttribute('src', 'img.png');
스타일 변경   element.style.color = 'red';
클래스 조작   element.classList.add('active');
요소 추가/삭제   append(), remove(), createElement()

 

예시

const btn = document.querySelector("#btn");
btn.addEventListener("click", () => {
  document.body.style.backgroundColor = "lightblue";
});

 

 

 

 

 


 

 

 

 

4. 이벤트 처리 (Event Handling)

메서드설명예시
.addEventListener() 이벤트 리스너 등록 btn.addEventListener("click", func);
.removeEventListener() 이벤트 해제 btn.removeEventListener("click", func);
주요 이벤트 click, input, submit, change, mouseover, keydown 등

 

 

예시

const form = document.querySelector("form");
form.addEventListener("submit", (e) => {
  e.preventDefault(); // 새로고침 방지
  console.log("폼 제출됨");
});

 

 

 

 

 


 

 

 

5. 배열 & 객체 조작

기능설명예시
배열 생성   let fruits = ['apple', 'banana'];
배열 메서드   .push(), .pop(), .map(), .filter(), .forEach(), .find()
객체 key-value 형태의 데이터 let user = { name: 'Lee', age: 21 };
객체 접근   user.name 또는 user['age']
객체 순회   for (let key in user) { ... }

 

예시

const users = ["kim", "lee", "park"];
users.forEach((u) => console.log(u.toUpperCase()));

 

 

 

 

 


 

 

 

6. 조건부 렌더링 & 토글

HTML/CSS와 함께 자주 쓰이는 핵심 기능.

 

const menu = document.querySelector(".menu");
const btn = document.querySelector("#toggle");

btn.addEventListener("click", () => {
  menu.classList.toggle("active"); // on/off 전환
});

 

 

 

 


 

 

 

7. Fetch API (데이터 통신)

기능설명예시
1. GET 요청: 서버에서 데이터 가져오는 요청
fetch("https://api.example.com/data")
  .then(res => res.json())
  .then(data => console.log(data));

 

 
2. POST 요청: 서버로 데이터를 전송하는 요청
fetch("/submit", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "Hyun", age: 20 })
});

 

 

3. async/await을 사용한 버전

async function loadData() {
  const res = await fetch("/api/user");
  const data = await res.json();
  console.log(data);
}

 

 

 

 

 


 

 

 

8. 로컬 스토리지 & 세션 관리

기능설명예시

 

localStorage.setItem() 데이터 저장 localStorage.setItem("theme", "dark");
localStorage.getItem() 데이터 읽기 const t = localStorage.getItem("theme");
localStorage.removeItem() 데이터 삭제 localStorage.removeItem("theme");

 

// 다크모드 저장
toggle.addEventListener("click", () => {
  localStorage.setItem("theme", "dark");
});

 

 

 

 


 

 

 

 

 

9. 모듈화 (프론트엔드 필수적이라고 )

개념설명예시
export 외부로 내보내기 export function add(a,b){return a+b}
import 불러오기 import { add } from './utils.js';
<script type="module" src="main.js"></script>

 

위의 코드를 사용하면 모듈을 사용할 수 있다.

리액트의 컴포넌트 단위로 개발을 하는것과 같은 원리인 듯 하다.

 

 

 

 

 


 

 

 

10. 자주 실무에서 사용하고 헷갈리는 패턴

 

 

1. 다크모드

const body = document.body;
document.querySelector("#mode").onclick = () => body.classList.toggle("dark");

 

 

2. 스크롤 시 네비게이션 고정

window.addEventListener("scroll", () => {
  document.querySelector("nav").classList.toggle("fixed", window.scrollY > 100);
});

 

 

3. 폼 유효성 검사

if (!email.includes("@")) alert("이메일 형식이 올바르지 않습니다.");

 

 

 


 

이로서 html, css, js의 필수적인 요소 학습이 끝이 났다. 다음번에는 이를 활용하여 제작한 서버리스 대시보드 프로젝트를 포스팅 하도록 하겠다.

저작자표시 (새창열림)

'web > html' 카테고리의 다른 글

웹 프로그래밍(HTML5+CSS+javaScript) - 2 (CSS)  (0) 2025.10.27
웹 프로그래밍(HTML5+CSS+javaScript) - 1 (html)  (0) 2025.10.27
프론트 링크 자료 모음🎱  (0) 2023.01.20
[html] springboot 기초실습1 (기초, table, input)  (0) 2022.09.27
'web/html' 카테고리의 다른 글
  • 웹 프로그래밍(HTML5+CSS+javaScript) - 2 (CSS)
  • 웹 프로그래밍(HTML5+CSS+javaScript) - 1 (html)
  • 프론트 링크 자료 모음🎱
  • [html] springboot 기초실습1 (기초, table, input)
noeyh
noeyh
기록하고 성장하는 개발자, 최유현 입니다. github : https://github.com/Choiyuhyeon
    티스토리 홈 로그아웃
  • noeyh
    CreateU
    noeyh
  • 전체
    오늘
    어제
  • 글쓰기 관리
    GitHub
    Notion
    • 분류 전체보기 (31)
      • web (22)
        • html (5)
        • css (4)
        • js (5)
        • react (6)
        • next (1)
      • server (0)
      • linux (0)
      • figma (0)
      • ml (0)
      • algorithm (5)
      • git (1)
      • 미니프로젝트 (0)
      • 프로젝트 (0)
      • 정보 (0)
      • 일상 (0)
      • memo (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • hELLO· Designed By정상우.v4.10.6
noeyh
웹 프로그래밍(HTML5+CSS+javaScript) - 3 (Javascript)
상단으로

티스토리툴바