Menu
Coddy logo textTech

JavaScript 치트시트

마지막 업데이트

변수 (let, const, var)

값을 선언합니다. const를 먼저, 그다음 let을 쓰고 var는 피하세요.

작업문법
블록 스코프, 재할당 가능let count = 0;
블록 스코프, 재할당 불가const name = "Ada";
함수 스코프 (예전 방식)var x = 1;
값 없이 선언let result;
여러 개 선언let a = 1, b = 2;
상수 객체 (내용은 변경 가능)const user = {}; user.id = 1;

자료형

원시 타입과 참조 타입, 그리고 타입을 확인하는 방법.

타입예시
숫자let n = 42;
문자열let s = "hi";
불리언let ok = true;
배열let arr = [1, 2, 3];
객체let obj = { id: 1 };
Null / undefinedlet a = null;, let b;
타입 확인typeof n
변환Number("7"), String(42), Boolean(0)

문자열 및 템플릿 리터럴

텍스트를 만들고 다룹니다.

작업문법
템플릿 리터럴Hi ${name}, age ${age} (백틱으로 감싸기)
길이text.length
대문자 / 소문자text.toUpperCase(), text.toLowerCase()
공백 제거text.trim()
전부 치환text.replaceAll("a", "b")
배열로 분할text.split(",")
포함 여부text.includes("js")
슬라이스text.slice(0, 3)

배열 및 배열 메서드

순서가 있는 컬렉션과 이를 순회하는 메서드.

작업문법
끝에서 추가 / 제거arr.push(4), arr.pop()
앞에서 추가 / 제거arr.unshift(0), arr.shift()
각 항목 변환arr.map(x => x * 2)
일치하는 항목 유지arr.filter(x => x > 0)
단일 값으로 축약arr.reduce((sum, x) => sum + x, 0)
항목 찾기arr.find(x => x.id === 1)
일부 / 모두 검사arr.some(f), arr.every(f)
값의 인덱스arr.indexOf(3), arr.includes(3)
문자열로 결합arr.join(", ")

객체

키-값 컬렉션.

작업문법
생성const user = { id: 1, name: "Ada" };
속성 접근user.name, user["name"]
속성 추가 / 갱신user.age = 25;
속성 삭제delete user.age;
모든 키 / 값 가져오기Object.keys(user), Object.values(user)
엔트리 가져오기Object.entries(user)
객체 병합Object.assign({}, a, b)
얕은 복사const copy = { ...user };

제어 흐름

조건문과 반복문.

작업문법
if / else if / elseif (x > 0) { … } else { … }
삼항 연산자const y = x > 0 ? 1 : 0;
switchswitch (x) { case 1: … break; }
for 반복문for (let i = 0; i < 5; i++) { … }
for-of (값)for (const item of arr) { … }
for-in (키)for (const key in obj) { … }
while 반복문while (x < 10) { … }

함수 및 화살표 함수

재사용 가능하고 호출 가능한 블록을 정의합니다.

작업문법
함수 선언function add(a, b) { return a + b; }
화살표 함수const add = (a, b) => a + b;
인자 하나인 화살표const sq = x => x * x;
인자 없는 화살표const now = () => Date.now();
기본 매개변수function f(x = 0) { … }
나머지 매개변수function f(...args) { … }
즉시 실행 함수 (IIFE)(() => { … })();

구조 분해 및 스프레드

값을 풀어내고 구조를 복사/병합합니다.

작업문법
배열 구조 분해const [a, b] = arr;
객체 구조 분해const { id, name } = user;
풀어내며 이름 변경const { id: userId } = user;
기본값const { age = 0 } = user;
배열 스프레드const all = [...a, ...b];
객체 스프레드const next = { ...user, age: 25 };
구조 분해에서 나머지const [first, ...rest] = arr;

프로미스 및 async/await

네트워크 요청 같은 비동기 작업을 처리합니다.

작업문법
async 함수async function load() { … }
프로미스 awaitconst data = await fetch(url);
then / catchpromise.then(res => …).catch(err => …)
await와 함께 try / catchtry { await f(); } catch (e) { … }
resolve / rejectPromise.resolve(1), Promise.reject(err)
모두 기다리기await Promise.all([a, b])
가장 먼저 끝나는 것await Promise.race([a, b])

가장 자주 쓰는 최신 JavaScript 문법을 한 페이지에 담았습니다. 이 JavaScript 치트시트는 일상적인 ES6+ 작업을 위한 빠른 참조 자료입니다 - 변수 선언, 문자열과 배열 메서드, 객체, 화살표 함수, 구조 분해, async/await를 다룹니다.

여기 나오는 모든 내용은 최신 브라우저와 Node.js에서 동작하는 표준 JavaScript입니다. 필요한 것을 복사하거나, JS 플레이그라운드에서 어떤 코드든 바로 실행해 보세요 - 설치할 것이 없습니다.

JavaScript 치트시트 자주 묻는 질문

이 JavaScript 치트시트는 무료인가요?
네. 이 JavaScript 치트시트는 완전히 무료이며 회원 가입이 필요 없습니다. 즐겨찾기에 추가해 두고 문법, 배열 메서드, 비동기 패턴을 찾아봐야 할 때마다 다시 방문하세요.
JavaScript에서 ==와 ===의 차이는 무엇인가요?
==는 느슨한 동등 비교입니다: 비교 전에 피연산자를 같은 타입으로 변환하므로 0 == "0"true입니다. ===는 엄격한 동등 비교입니다: 변환 없이 값과 타입을 모두 비교하므로 0 === "0"false입니다. 거의 모든 경우에 ===(그리고 !==)를 사용하세요 - 예측 가능하고 의외의 강제 변환을 피할 수 있습니다.
let, const, var의 차이는 무엇인가요?
constlet은 블록 스코프이며 ES6에서 추가되었습니다. var는 함수 스코프이고 더 오래되었습니다. 재할당하지 않는 값에는 const를, 재할당하는 값에는 let을 사용하고, 호이스팅과 스코프 버그를 막기 위해 var는 피하세요. const 객체나 배열은 여전히 내용을 바꿀 수 있다는 점에 유의하세요 - 바인딩만 상수입니다.
JavaScript를 온라인에서 연습할 수 있나요?
네. JS 플레이그라운드를 열어 이 치트시트의 어떤 코드든 브라우저에서 실행해 보세요 - 설치할 것이 없습니다. 체계적으로 배우고 싶다면, Coddy의 무료 인터랙티브 JavaScript 강좌가 변수와 반복문부터 배열 메서드와 async/await까지 단계별로 안내합니다.
이 치트시트는 초보자에게 적합한가요?
네. 기초(변수, 자료형, 문자열)부터 구조 분해와 async/await까지 순서대로 정리되어 있어, 첫날부터 상단 섹션을 사용하고 점차 최신 ES6+ 기능으로 넓혀갈 수 있습니다.
Coddy programming languages illustration

Coddy로 JavaScript 배우기

시작하기