05장 표현식과 문

niyu·2021년 6월 21일
2
post-thumbnail

값과 리터럴

값(value) 은 Expression(표현식)을 해석하여 생성된 결과를 말한다.

var sum = 10 + 20; // 변수에는 "10 + 20"을 해석한 결과인 숫자 값 "30"이 할당됨

값은 다양한 방법으로 생성할 수 있다.

리터럴(literal) 은 사람이 이해할 수 있는 문자인 알파벳, 숫자, 기호 등을 사용해 값을 생성하는 표기법을 말한다.

리터럴은 정수, 문자열, 객체 리터럴 등의 다양한 종류의 값을 생성할 수 있다.

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

문(Statement)과 표현식(Expression)

Statement 는 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다.

Statement의 집합으로 이루어진 것이 곧 프로그램이다. Statement은 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있다.

var x; // 변수 선언문

x = 5; // 할당문

function foo () {} // 함수 선언문

if ( x > 1 ) { ... } // 조건문

for (var i = 0 ; i < 2 ; i++) { ... } // 반복문

Expression 은 값으로 평가(evaluate)될 수 있는 모든 Statement을 말한다.

즉, Expression은 값으로 평가되며, 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이뤄질 수 있다.

// 리터럴 표현식
10
'Hello'

// 식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[1]

// 연산자 표현식
10 + 20 
sum = 10
sum !== 10

// 함수/메서드 호출 표현식 (선언은 이미 존재한다고 가정)
square()
person.getName()

Statement(문) ⊃ Expression(표현식)
모든 Expression은 Statement이나, 어떤 Statement는 Expression이 아니다.

표현식인 문은 값으로 평가될 수 있는 문이며, 표현식이 아닌 문은 값으로 평가될 수 없는 문을 말한다.

둘을 명확히 구분하는 방법은 변수에 할당해 보는 것이다. 표현식인 문은 값으로 평가되므로 변수에 할당할 수 있다.

또한 크롬 개발자 도구에서 표현식이 아닌 문을 실행하면 언제나 undefined를 출력한다.

var x; // 표현식 X  

x = 100; // 표현식 O

var foo = 10; // 표현식 X

if (true) {} // 표현식 X


// 변수에 할당해보기!
var foo = var x; // 표현식이 아닌 문은 값처럼 사용할 수 없다.

var foo = x = 100; // 표현식인 문은 값처럼 사용할 수 있다.

0개의 댓글