하나의 값을 저장하기 위해 확보한 메모리 공간 자체
그 메모리 공간을 식별하기 위해 붙인 이름
(값의 위치를 가리키는 상징적인 이름)
변수에 값을 저장하는 것
=
사용console.log(score); // undefined
var score = 80; // 변수 선언 및 값 할당
console.log(score); //80
이미 값이 할당되어 있는 변수에 새로운 값을 또다시 할당하는 것
값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 상수(constant)
[참고] 가비지 콜렉터(garbage collector)
애플리케이션이 할당한 메모리 공간을 주기적으로 검사하여 더 이상 사용되지 않는 메모리(즉, 어떤 식별자도 참조하지 않는 메모리 공간)를 해제하는 기능
WeakRef()
변수에 저장된 값을 읽어 들이는 것
변수를 생성하는 것
즉, 값을 저장하기 위한 메모리 공간을 확보(allocate)하고 변수 이름과 확보된 메모리 공간의 주소를 연결(name binding)해서 값을 저장할 수 있게 준비하는 것
var
let
const
키워드 이용변수가 선언된 이후 최초로 값을 할당하는 것
var
키워드로 선언한 변수는 undefined
로 암묵적인 초기화 자동 수행어떤 값을 구별해서 식별할 수 있는 고유한 이름
변수 이름을 식별자라고도 함
ReferenceError
(참조 에러) 발생하나 이상의 영어 단어로 구성된 식별자를 만들 때 가독성 좋게 단어를 한눈에 구분하기 위해 규정한 명명 규칙
// 참조 에러가 발생하지 않고, undefined가 출력
console.log(score); // undefined
var score; // 변수 선언문
변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징
var
let
const
function
function*
class
키워드를 사용해서 선언하는 모든 식별자(변수, 함수, 클래스 등)는 호이스팅이 발생표현식이 평가(evaluate)되어 생성된 결과
사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation)
값으로 평가될 수 있는 문
즉, 표현식이 평가되면 새로운 값을 생성하거나 참조
프로그램을 구성하는 기본 단위이자 최소 실행 단위
컴퓨터에 내리는 명령
문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
ex) 키워드, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등
문의 종료를 나타냄