본문 바로가기

HTML ⁄ CSS ⁄ JS

JavaScript - 값(value), 식(expression), 문(statement)

 

 

코치님(포코)의 추천키워드, 값 식 문.

많이 들어봤고 알고있다고 생각했지만 막상 설명하려고 하면 어려운 개념이다. 값, 식, 문의 기초개념을 정확히 이해하고 더 나은 코드를 작성해보자.

 

값 Value

a value is the representation of some entity that can be manipulated by a program.

 

'값'이란 프로그램이 조작할 수 있는 어떤 표현이다. '값'은 문자열, 문자, 숫자 처럼 어떤 데이터 형식도 가질 수 있다.

'값'을 L-Value와 R-Value로 나누기도 한다. 대입연산자 (=)를 기준으로 왼쪽에 있는 L-Value, 오른쪽에 있는 R-Value로 나누는 것이다. L-Value는 메모리 주소을 가지고 있어 식별자를 통해 프로그래밍으로 컨트롤할 수 있다. 반면에 R-Value는 단일 '표현식'에서만 잠깐 사용하는 '임시 값'이다. 

 

식 expression

an expression is a syntactic entity in a programming language that may be evaluated to determine its value.

 

'식' 또는 '표현식'이란 값을 결정짓기 위해 평가될 수 있는 구문이다.

'식'은 상수, 변수, 함수, 연산자들의 조합으로 이루어진다. 프로그래밍 언어는 '식'에서 또 다른 '값'을 생성해낸다. 이러한 연산 과정을 평가(evaluation)이라고 한다. 다음은 모두 식에 해당한다.

2 + 3 // 5로 평가되는 연산식이다.
4 ≠ 4 // flase라는 값으로 평가되는 관계식이다.
y + 6 // 변수도 값으로 평가되므로 역시 식이다.

'식'은 '값'을 갖지 않는 '문'과 종종 비교되곤 한다.

 

문 statement

a statement is a syntactic unit of an imperative programming language that expresses some action to be carried out.

 

'문'은 수행할 액션의 구문 단위이다.

'문'은 데이터에 어떤 액션을 취할 것인지를 결정한다. 프로그램이란 이러한 '문'의 연속이라고 할 수 있다. '문'은 '식'을 내부 요소로 가질 수 있다. '식'이 평가를 통해 새로운 값을 낼 뿐 사이드이펙트를 발생시키지 않았던 것과 달리, '문'은 실행 시 사이드이펙트를 발생시킨다. 다음은 모두 문에 해당한다.

const a = 1; // 선언'문'
b = a + 5; // 할당'문'

play(car); // 함수 호출
return; // 리턴 호출

for (let i = 0; i < limit; i++) // 반복'문'
if (flag) // 조건'문'

 

 

참고자료

- Value_(computer_science)- Expression_(computer_science)

- Statement_(computer_science)