14. 기본 문법 요약
2026년 4월 10일
자바스크립트
🏗️ 1. 코드 구조 및 엄격 모드
세미콜론 (Semicolon)
- 자동 삽입: 보통 줄 바꿈이 있으면 엔진이 세미콜론을 자동으로 넣어주지만,
[로 시작하는 행 등에서는 오류가 날 수 있습니다. - 권장 사항: 모든 문장의 끝에는 명시적으로 세미콜론을 붙이는 습관을 들이세요.
- 예외: 코드 블록(
{...}) 뒤에는 세미콜론이 필요 없습니다.
엄격 모드 (Strict Mode)
- 활성화:
'use strict'를 스크립트나 함수 최상단에 작성합니다. - 효과: 옛날 방식의 실수를 에러로 잡아주며, 모던한 최신 기능을 활성화합니다.
- 참고: 클래스(Class)나 모듈(Module)을 쓰면 자동으로 활성화되니 안심하세요.
💎 2. 변수와 8가지 자료형
변수 선언
let: 일반적인 변수.const: 재할당이 불가능한 상수. 기본적으로const를 쓰고, 값이 바뀌어야 할 때만let으로 바꾸는 것이 좋습니다.
8가지 자료형 (Data Types)
| 자료형 | 특징 |
|---|---|
| Number | 정수 및 부동 소수점. Infinity, NaN 포함. |
| BigInt | $2^{53} - 1$ 보다 큰 정수 처리. |
| String | 문자열. 따옴표나 백틱(```)으로 감쌈. |
| Boolean | true와 false. |
| null | '비어있음'을 나타내는 독립 타입. |
| undefined | '할당되지 않음'을 나타내는 독립 타입. |
| Object | 복잡한 데이터 구조. |
| Symbol | 고유 식별자. |
⚠️ typeof의 함정
typeof null→"object"(언어 설계상의 오류)typeof function(){}→"function"(함수는 객체이지만 특별 취급)
🤝 3. 브라우저 상호작용 (UI)
- alert(msg): 단순 메시지 노출.
- prompt(q, [default]): 텍스트 입력받기. 취소 시
null반환. (IE를 위해 기본값""권장) - confirm(q): 확인(
true) 또는 취소(false) 선택.
⚡ 4. 연산자 (Tricky Points)
- 이항 연산자
+: 하나라도 문자열이면 문자열 연결이 우선됩니다. ('1' + 2 == '12') - 단항 연산자
+: 숫자가 아닌 값을 숫자형으로 변환합니다. (+true == 1) - 일치 연산자
===: 형 변환 없이 값과 타입을 모두 비교합니다.==보다===를 쓰세요. - nullish 병합 연산자
??: 값이null이나undefined일 때만 폴백(fallback) 값을 선택합니다. (0이나""은 유효한 값으로 취급)
🔄 5. 제어 흐름 (반복문 & Switch)
반복문
while,do..while,for문 사용.break는 반복문을 종료,continue는 현재 루프를 건너뜁니다.- 중첩 반복문 탈출 시에는 **레이블(Label)**을 활용하세요.
Switch 문
- 내부적으로 일치 연산자(
===) 비교를 수행합니다. - 즉,
prompt로 받은"18"과 케이스18(숫자)은 일치하지 않으니 주의하세요!
📦 6. 함수 (Functions)
함수를 만드는 세 가지 스타일
| 구분 | 함수 선언문 | 함수 표현식 | 화살표 함수 |
|---|---|---|---|
| 문법 | function sum() {} | let sum = function() {} | let sum = () => {} |
| 호이스팅 | 선언 전 호출 가능 | 불가능 | 불가능 |
| 특징 | 가독성이 좋고 자유로움 | 조건부 선언 등에 유리 | 간결함, 자체 this 없음 |
💡 기억해야 할 중요한 내용
- 에러 메시지를 두려워하지 마세요. 특히
NaN이나undefined가 나오면 데이터 타입이 꼬였는지(typeof) 먼저 확인하는 것이 디버깅의 핵심입니다. - 가독성이 곧 실력입니다. 짧은 삼항 연산자나
&&를 남발하기보다, 남이 읽기 편한if문과 명확한 함수 이름을 짓는 데 더 공을 들이세요.