data life

📖 modern javascript Deep Dive 5장 본문

카테고리 없음

📖 modern javascript Deep Dive 5장

주술회전목마 2022. 11. 13. 03:13


표현식과 문

프로그래밍에서 앞으로 자주 사용할 용어의 의미를 주의 깊게 살펴보도록 한다.

 

값이란?

: 식이 평가되어 생성된 결과로 '평가'는 식을 해석하여 값을 생성하거나 참조하는 것을 의미한다.

var sum = 10 + 20; // 30

 

>> sum 변수에 10 + 20이 아닌 결과값 30이 할당된 것이라고 본다.

 

값은 다양한 방법으로 생성가능하다. 

 

리터럴(literal)

: 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.

자바스크립트 엔진은 코드가 실행되는 시점(런타임)에 리터럴을 평가해 값을 생성한다.

리터럴의 종류는 다음과 같다.

리터럴
정수 1
부동 소수점 1.2
2진수 0b로 시작
8진수 0o로 시작
16진수 0x로 시작
문자열 'Hello', "World"
불리언(Boolean) true, false
null null
undefined undefined
객체 {fisrtname:'Lee', lastname:'hyun'} 
배열 [1,2,3]
함수 function() { } 
정규 표현식 /[A-Z] + /g

 

 

표현식

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

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

따라서, 리터럴도 표현식이라고 할 수 있다.

var score=100;

>> 100은 리터럴이다.

 

var score = 50 + 50;

>> 50 + 50 은 평가되어 숫자 100을 생성하므로 표현식이다.

var x = 1 + 1;
x + 1; // 3

🔸 이처럼 표현식은 리터럴, 식별자(변수, 함수 등의 이름), 연산자, 함수 호출 등의 조합으로 이루어지며 다른 표현식의 일부가 되어 새로운 값을 만들어 낼 수도 있다.

 

 

앞으로 자바스크립트를 설명할 때 문(statement)표현식(expression)이라는 용어가 자주 등장할 것이다.

이 둘을 구별하고 해석할 수 있다면 코드를 읽고 결과를 예측하는데 도움이 된다.

 

문이란? 

  • 문의 집합 => 프로그램
  • 문을 작성하고 순서에 맞게 나열 => 프로그래밍

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

> 명령문이라고도 부르는데 컴퓨터에 내리는 명령인 셈!

> 여러 토큰으로 구성되는데 토큰이란 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소를 의미한다.

가장 큰 예시로, 키워드, 식별자, 연산자, 리터럴, 세미콜론(;), 마침표(.)등의 특수기호
// 변수 선언문
var x;

// 할당문
x = 5;

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

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

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

 

 

 

세미콜론(;)

 

문의 종료를 나타냄

자바스크립트는 세미콜론으로 문이 종료한 위치를 파악하고 순차적으로 하나씩 문을 실행해나간다.

 

 

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

// 변수 선언문은 값으로 평가될 수 없으므로 표현식이 아니다.
var x;

// 표현식이면서 완전한 문이다.
x = 1 + 1;
  • 표현식이 아닌 문을 실행 ===> undefined 
  • 표현식인 문 실행 ===> 값 반환