JS/deep dive

[Javascript] 표현식과 문

디디벨 2022. 4. 27. 08:52
728x90

표현식의 정의는 값으로 평가 될 수 있는 문이다. 

즉, 표현식이 평가되면 새로운 값을 생성하거나 기존의 값을 참조하게 된다. 

 

 

var a = 100 //값 생성

var b = 10+20 //값 생성

 

이와 같이 값을 생성했으므로 표현식이라고 할 수 있다. 

표현식은 리터럴(예시: 100, 30), 식별자(변수 이름 등), 연산자 등의 조합으로 이루어질 수 있다. 


그럼 값은 무엇일까?

 

표현식이 평가되어 생성된 결과를 말한다.

 

위의 예시에 100과 30(10+20)이 값이라고 볼 수 있다. 

변수는 하나의 값을 저장하고 있다는 걸 볼 수 있다.

 


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

문의 집합으로 이뤄진것이 프로그램이고, 문을 작성하고 순서에 맞게 나열하는 것이 프로그래밍이다.

 

 

프로그래밍 문장이 아닌 한글 문장으로 생각하면 문장을 구성하는 형태소라고 생각하면 될 것 같다.

 

각 형태소마다 기능이 있다고 생각하자

 

토큰이라는 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본요소이다.

식별자, 연산자, 리터럴, 세미콜론 등의 코드의 기본요소들이 토큰이라고 볼 수 있다.

 

흔히 쓰이는 선언문, 할당문, 조건문, 반복문등의 "문"의 의미가 이러하다.

 

 


 

문에는 표현식인 문과 표현식이 아닌 문이 있다.

 

표현식의 정의를 다시 가져오면 다음과 같다.

 

표현식의 정의는 값으로 평가 될 수 있는 문이다. 
즉, 표현식이 평가되면 새로운 값을 생성하거나 기존의 값을 참조하게 된다. 

 

 

예를 들어 다음과 같은 변수 선언문이 있다.

var a;

 

이 변수 선언문은 값으로 평가 될 수 없는 문이다.

따라서 표현식이 아닌 문이다.

 

표현식의 문과 아닌 문을 구별하는 방법은 변수에 할당해 보는 것이다.

 

var a //변수 선언문은 표현식이 아니다

a = 100 // 값으로 할당했고 평가될 수 있다. 이 자체가 완전한 표현식이다.

 

할당문은 표현식인 문이기 때문에 값처럼 사용할 수 있다.

 

var b = a = 100 //변수 선언과 할당문
console.log(b);//100

 

위의 변수 할당문인 a = 100를 값처럼 변수 b에 할당했다.

할당문은 할당한 값으로 평가되는데 100은 a 변수에 할당한 값으로 평가되고 변수 b에도 할당이 된다는 걸 볼 수 있다. 

 

 

레퍼런스: 모던자바스크립트 deepdive

728x90

'JS > deep dive' 카테고리의 다른 글

[Javascript] 데이터 타입  (0) 2022.04.28
[Javascript]변수 호이스팅  (0) 2022.04.23
[Javascript] 변수  (0) 2022.04.22