표현식 값은 식(표현식)이 평가되어 생성된 결과 평가 : 식을 해석해서 값을 생성하거나 참조하는 것 리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 코드가 실행되는 시점(런타임)에 리터럴을 평가하여 값을 생성. 정수, 부동소수점, 2진수 등 약속된 기호를 통해 출력 표현식 : 값으로 평가될 수 있는 문 값으로 평가될 수 있는 모든 문은 모두 표현식이다. 문 : 프로그램을 구성하는 기본 단위이자 최소 실행 단위 토큰 : 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소 세미콜론 세미콜론은 문의 종료를 나타내는 토큰이다. if문, for문, 함수 등 코드 블록들은 자체 종결성을 가지고 있어, 세미콜론으로 문의 종료를 나타낼 필요가 없다. 세미콜론은 필수가 아니며, JS 엔진이 ASI(세미콜론 자동 삽입 기능)을 통해 문의 끝을 예
변수 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 or 메모리 공간을 식별하기 위한 이름 변수는 식별자라는 이름으로도 불린다. 변수(식별자)는 할당된 값을 가지는게 아니라 메모리 주소를 가진다. 변수의 선언 과정 요약 > 키워드 + 변수명 작성 ⇒ 메모리 공간 주소 할당 ⇒ 할당된 메모리의 이름을 변수명으로 등록 ⇒ 메모리 공간에 Undefined 할당 > 일반적인 프로그래밍 언어라면 참조 오류가 발생해야 하지만, JS는 평가라는 과정이 있기 때문에 미리 코드에서 변수 선언을 포함한 모든 선언문들을 먼저 실행한 후(호이스팅), 남은 소스코드들을 한 줄 씩 처리한다. 호이스팅 변수 초기화 var 변수는 호이스팅 시, Undefined로 초기화된다. let, const 변수는 호이스팅 시, 초기화가 되지 않는다.(즉, var처럼 호이스팅은 되지만 참조오류가 발생한다.)