반드시 문자, 달러($), 밑줄(_)로 시작
대소문자 구분, 클래스명 외에는 모두 소문자로 시작
let : 재할당 할 수 있는 변수, 변수 재선언 불가능, 블록 스코프 const : 재할당 할 수 없는 변수, 변수 재선언 불가능, 블록 스코프
블록 스코프: if, for, 함수 등의 중괄호 내부 // 블록 스코프를 가지는 변수는 블록 바깥에서 접근 불가능
var : 재선언, 재할당 모두 가능, 함수 스코프 호이스팅이라는 특성으로 예기치 못한 문제 발생 가능
함수 스코프 : 함수 바깥에서 접근 불가능
호이스팅 : 변수를 선언 이전에 참조할 수 있는 현상 (undefined 반환)
원시타입: 객체가 아닌 기본 타입. 변수에 해당 타입의 값이 담긴다. 실제 값이 복사된다.
숫자, 문자열, undefined(직접 값을 할당하지 않으면 자동으로 undefined 할당됨), null(개발자가 의도적으로 필요에 의해 할당), 불리언
참조타입: 객체 타입의 자료형들. 객체의 참조 값이 담긴다. 참조 값이 복사됨.
함수, 배열, 객체
'==' : 두 피연산자가 값은 값으로 평가되는지 비교 후 불리언 값 반환 (암묵적 타입 변환을 통해 타입을 일치시킨다) 이로써 예상치 못한 결과가 발생할 수 있으므로 특별한 경우를 제외하고 사용하지 않는다.
'===' : 두 피연산자가 타입까지 모두 같은 값인지 비교한다.
'&&' : and 연산 '||' : or 연산 '!' : not 연산
if (condition) {
// 할 일
} else if (condition) {
// 할 일
} else {
// 할 일
}