
처음엔 어떻게 정리해야할지 몰랐지만 점점 정리법을 찾아나가는 중 ~~
값은 표현식이 평가되어 생성된 결과
평가란 식을 해석해서 값을 생성하거나 참조하는 것(=사람이 수학문제 푸는 것처럼!)
참조: 변수에 저장된 값을 읽어 들이는 것
var sum = 10 + 20
여기서 변수 sum에 할당되는 것은 10 + 20 이 아니라 평가된 결과인 숫자 값 30
따라서 10 + 20은 할당 이전에 평가되어 값을 생성해야함
값은 식으로도 생성할 수 있지만 다른 방법으로 생성할 수도 있는데, 기본적인 방법은 리터럴임
리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
즉, 값을 생성하기 위해 미리 약속된 표기법
예를 들어,
3
여기서 3은 단순한 아라비아 숫자 3이 아니라 숫자 값 3(0000 0010)으로 약속된 숫자 리터럴
표현식은 값으로 평가될 수 있는 문
즉, 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조
앞서 살펴본 리터럴은 값으로 평가되기에 따라 리터럴도 표현식임
var score = 100;
위 예제의 리터럴 100은 자바스크립트 엔진에 의해 평가되어 값을 생성하므로 그 자체로 표현식임
또 다른 리터럴의 예시로
var score = 50 + 50 // 리터럴과 연산자로 이루어져있지만 평가되어 숫자 값 100을 생성하므로 표현식
score; // 변수 식별자를 참조하면 변수 값으로 평가됨. 여기서는 100이기에 표현식
//리터럴 표현식
10
'hello world'
//식별자 표현식(선언이 이미 존재할 때)
sum
person.name
arr[1]
//연산자 표현식
10 + 20
sum = 10
sum !== 10
// 함수/메서드 호출 표현식(선언이 이미 존재할 때)
square()
person.getName()
표현식과 평가된 값은 동등한 관계, 동치
-> 따라서 문법적으로 값이 위치할 수 있는 자리에 표현식도 위치할 수 있음
문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위
문의 집합으로 이루어진 것이 프로그램이며, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍
문은 여러 토큰으로 구성됨
토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
ex) 키워드, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등
-> 쉽게 생각해서 코드 짤 때 띄어쓰기 하는 것들 사이가 다 토큰이라고 생각하면 됨
문은 명령문이라고 부르는데, 문이 실행되면 명령이 실행되고 무슨 일인가가 일어나게 되기 때문
문은 선언문, 조건문, 반복문 등으로 구분할 수 있음
표현식은 문의 일부일 수도 있고, 그 자체로 문이 될 수도 있음
문의 두 종류
1. 표현식인 문 - 값으로 평가될 수 있는 문 ex) x = 1 + 2;
2. 표현식이 아닌 문 - 값으로 평가될 수 없는 문 ex) 변수 선언문 var x;
둘을 구분하는 가장 쉬운 방법은 변수에 할당해보는 것
1은 변수에 할당 가능하고, 2는 변수에 할당이 불가능함