Pie_Archive

[Java Script] 05. 표현식과 문 본문

Study/Java Script

[Java Script] 05. 표현식과 문

코딩파이 2022. 7. 25. 23:22

** 본 글은 모던 자바스크립트 DEEP DIVE 를 읽고 정리한 글입니다.
** 본인이 책 내용의 이해를 돕기 위해 정리한 글이며, 부 정확한 정보전달이 있을 수 있습니다.


 

문 (statement) 이란?

프로그램의 기본 단위이자 최소 실행단위

컴퓨터에게 명령하는 한 문장 이라고 할 수 있다.

변수 선언, 변수 할당, 함수 선언, 조건, 반복... 등등

이렇게 모든 실행 단위들을 문 (statement) 라고 할 수 있다.

 

문과 표현식의 관계

그리고 이 문 (statement) 을 가지냐에 따라 표현식 표현식이 아닌 문 으로 나눌 수 있다.

 

값(value) ?

표현식이 평가되어 생성된 결과

var sum = 10 + 20; ⇒ 30 이라는 값을 지닌다.

평가(evaluation) 라는 말이 들어가서 어려워 보이지만,

수학의 값을 생각하자. 우리가 써먹을 예정이거나 도출 해 낸 결과라고 생각하면 편하다.

 

표현식(Expression) ?

값(value) 으로 평가될 수 있는 (statement)

~~문을 선언/호출했는데, 값이 있다면 표현식이다 라고 이해하면 편하다.

// 리터럴 표현식 (문자열 리터럴)
"Hello" // string
10 // number

// 식별자 표현식
var sum; // 변수 선언문, 표현식 X
sum = 10; // 변수 할당문, 표현식 O

// 함수 호출 표현식 
function test () { // 함수 선언문, 선언 자체는 값이 없으므로 표현식 X
	return "test"
}
test() // 이 함수는 return "test"값을 가지므로 표현식 O

 

표현식이 아닌 문과 구분방법

앞서 표현식과 반대로 값을 가지지 않는 (statement)도 있는데, 이를 어떻게 알 수 있을까?

변수에 할당해보자!

var one; // one 이라고 선언한 변수에 값을 할당해본다.

one = '1'; // 문자열 리터럴 표현식을 할당했다. 표현식 O

one = var one2; // 변수 선언문 자체는 할당이 불가능하다. 표현식 X

one = if (1 > 0) {...} // 조건문 자체도 할당이 안된다. 표현식 X

one = 10 > 0 ? 'a' : 'b' // 그러나 이런 삼항연산자의 형태로 값을 가지는건 표현식 O

 

해결되지 않은 궁금증

일반적으로var two = 2; 이렇게 변수를 사용할 때, 변수 선언과 할당 두 가지 절차를 거친다.

위 문법은 표현식인가?

var three3 = var three = ‘3’ // 분명 값을 가지지만, 선언의 과정이 포함되어서인지 오류가 난다.

 

리터럴과 토큰

해당 챕터 내용에는 나왔지만, 흐름상 애매해서 리터럴과 토큰은 따로 설명할 것입니다.

 

리터럴(Literal) 이란?

값을 생성하는 표기법 이라고 보면 된다.

어? 그냥 쓰면 값 아닌가...? 라고 생각할 수 있지만 예제를 보면 바로 이해가 될 것이다.

var one = one; // 에러. 문자열은 이렇게 쓰는게 아니고,

var one = 'one'; // 문자열 리터럴(표기법)으로 사용하여 문자열 값을 생성하였다.

one = 1; // 숫자는 다른 기호 없이 적는게 문자열 리터럴이다.

one = true; // 이건 boolean 리터럴이기 때문에, 따옴표 없이도 에러가 나지 않는다.

one = [1, '1']; // 배열 리터럴. 배열은 중괄호와 ,(콤마)로 구분하여 사용한다

// 기타등등...

우리가 코딩을 하면서

"이건 이렇게 씁니다~" 하면서 배운 많은 방법들이

그 데이터 타입의 리터럴 이라고 보면 되겠다.

 

토큰(Token)은 뭔가요?

문법적으로 더 이상 나눌 수 없는 기본적 요소

쉽게말하면 어절(語節) 이다.

var one = '1'; // 요 변수 선언 + 할당문은

var  one  =  '1'  ;

이렇게 다섯개의 토큰(token) 으로 나눌 수 있다.

 

요약 

문 (statement)은 컴퓨터에게 명령을 내리는 문장 이라고 볼 수 있고,

토큰 (token)은 그 명령을 이루는 하나의 어절 이라고 볼 수 있다.

문 (statement)값 (value)를 가지는 지에 따라표현식 (Expresion) 표현식이 아닌문 으로 나뉜다.

 


후기

이번 챕터는 오히려 저번 챕터보다 덜 프로그래밍적인(?) 요소여서인지, 그나마 이해가 쉬웠다.

당연한 내용들이지만 이렇게 하나씩 정확한 단어로 씹고 넘어가는 것이 나중에 분명 도움이 될 것이라고 생각한다.

오늘도 화이팅