- 반드시 **문자, 달러($), 밑줄(_)**로 시작
- 대소문자 구분
- 예약어(for, if, function 등) 사용 금지
| 케이스 | 사용 위치 |
|---|---|
camelCase |
변수, 함수, 객체 이름에 사용 |
PascalCase |
생성자 함수, 클래스 이름 |
SNAKE_CASE |
상수 이름에 사용 |
- 블록 스코프
- 재할당 가능
- 재선언 불가능
- 블록 스코프
- 재할당 ❌
- 재선언 ❌
- 선언 시 반드시 초기화 필요
- 함수 스코프
- 호이스팅 이슈 존재
- 예측 어려운 동작 가능성 있음
- 중괄호
{}안이 스코프 범위 - 예:
if,for,function내부 - 블록 바깥에서는 변수 접근 불가
- 의도 명확성: 변경 불가 → 실수 예방
- 코드 안전성: 불필요한 재할당 방지
- 필요 시에만
let사용 (변경 가능성 명확할 때)
- HTML의
<script>태그 .js확장자 파일로 외부 스크립트- 브라우저 개발자 도구의 Console
- HTML 문서를 객체 트리 형태로 표현
- 자바스크립트로 문서 구조, 스타일, 콘텐츠 조작 가능
- DOM 트리의 최상위 객체
- 페이지 내 모든 요소, 텍스트, 속성에 접근 가능
- DOM 조작의 시작점 역할
| 메서드 | 설명 |
|---|---|
document.querySelector() |
조건에 맞는 요소 1개 선택 |
document.querySelectorAll() |
조건에 맞는 요소 여러 개 선택 |
element.classList.add("클래스")element.classList.remove("클래스")element.classList.toggle("클래스")
getAttribute("속성명")setAttribute("속성명", "값")removeAttribute("속성명")
element.textContent: 텍스트 변경
document.createElement("태그명")Node.appendChild(요소)Node.removeChild(요소)
element.style.속성명 = "값"
| 개념 | 설명 |
|---|---|
Node |
DOM의 가장 기본 단위 |
Element |
Node의 하위 유형, 실제 HTML 요소 |
- 변수 선언이 코드 최상단으로 끌어올려지는 현상
var: 선언 전 접근 가능하나 값은undefinedlet,const: 호이스팅되지만 **TDZ(Temporal Dead Zone)**로 인해 선언 전 접근 시 오류 발생