Skip to content

Latest commit

 

History

History
88 lines (63 loc) · 3.23 KB

05_Expression.md

File metadata and controls

88 lines (63 loc) · 3.23 KB

05 표현식과 문

개념을 이해한다는 것은 바로 용어를 정확히 이해하고 설명할 수 있다는 것이다. 이 챕터에서는 용어에 대한 개념을 자세히 다룬다.

값(Value)

값(Value)는 표현식(expression)이 평가(evaluate)되어 생성된 결과를 말한다.

// 10 + 20은 평가되어 숫자 값 30을 생성한다.
var sum = 10 + 20; // 30

위 예제에서 sum 변수에 할당되는 것은 10+20이 아니라 10+20이 평가된 숫자 Value인 30이다.

리터럴(literal)

리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다.

// 숫자 리터럴 3
3

위 예제에서 숫자 3을 단순히 아라비아 숫자라고 부를 수 있으나, 이를 숫자 literal로 부르기로 한다.

자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 literal을 평가해 값을 생성한다.
리터럴은 값을 생성하기 위해 미리 약속한 표기법이라고 할 수 있다.

리터럴의 목록

리터럴 예시
정수 리터럴 100
부동소수점 리터럴 10.5
2진수 리터럴 0b1000001
8진수 리터럴 0o101
16진수 리터럴 0x41
문자 리터럴 'Hello'
불리언 리터럴 true
null 리터럴 null
undefinded 리터럴 undefinded
객체 리터럴 { name: 'Lee' }
배열 리터럴 [ 1,2,3 ]
함수 리터럴 function() {}
정규 표현식 리터럴 /[A-Z]+/g

표현식(expression)

표현식(expression)은 값으로 평가될 수 있는 문(statement)이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.

표현식을 평가한다는 것은 앞서 설명했다. 기존 값을 참조한다는 것은 무엇일까?

var score = 50 + 50;
score;

위의 예제를 보면 첫번째 줄은 50+50이 평가되어 숫자 Value 100를 생성하므로 expression , 두번째 줄은 값을 생성하지는 않지만 기존 값을 참조하므로 expression이다.

문(statement)

자바스크립트를 공부함에 있어 statement와 expression이라는 용어가 자주 등장할 텐데, 코드의 품질을 위해 두개를 잘 이해해야 한다.

문(statement)은 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다.

문은 선언문,할당믄,조건문,반복문 등으로 구분할 수 있다.

표현식인 문과 표현식이 아닌 문

// 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다
var x;
// x = 1 + 2는 표현식이면서 완전한 문이기도 하다
x = 1 + 2

문은 표현식인 문표현식이 아닌 문이 있다. 둘을 구분하는 가장 간단한 방법은 변수에 할당해 보는 것이다. 표현식은 문은 값으로 평가되므로 변수에 할당할 수 있다. 하지만 표현식이 아닌 문은 값으로 평가할 수 없으므로 에러가 난다.

// 표현식이 아닌 문은 값처럼 사용할 수 없다.
var foo = var x; // SyntaxError: Unexpected token var

// 변수 선언문은 표현식이 아닌 문이다.
var x;
// 할당문은 그 자체가 표현식이지만 완전한 문이기도 하다.
x = 100;