모든 값은 데이터 타입을 가지며, 메모리에 2진수, 즉 비트의 나열로 저장된다.
//변수에는 10 +20이 평가되어 생성된 숫자 값 30이 할당된다
var sum = 10 + 20;
값은 리터럴을 사용하여 생성할수 있다.
리터럴이란?
사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
//리터럴 표현식
10
'Hello'
//식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[1]
//연산자 표현식
10 + 20
sum = 10
sum !== 10
//함수/메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()
표현식은 리터럴, 식별자(변수, 함수 등의 이름), 연산자, 함수 호출 등의 조합으로 이뤄질 수 있다.
문은 여러 토큰으로 구성된다.
문은 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.
문을 끝낼 때는 세미콜론 ;을 붙여야 한다. 단, 블록{} 뒤에는 붙이지 않는다!(자체종결성을 갖기 때문)
구별하는 방법은 변수에 할당해 보면 알 수 있다!
표현식인 문은 값으로 평가되므로 변수에 할당 가능
표현식이 아닌 문은 값으로 평가할 수 없으므로 변수에 할당하면 에러 발생
//표현식이 아닌 문은 값처럼 사용불가
var foo = var x; //SyntaxError
//변수 선언문은 표현식이 아닌 문이다.
var x;
//할당문은 그자체가 표현식이지만 완전한 문이므로 표현식이다.
x = 100;