도서/# 모던 자바스크립트 Deep Dive

[모던 자바 스크립트 Deep Dive] - 5장. 표현식과 문

구구르밍 2023. 11. 2. 16:19

 


 

모던 자바 스크립트 Deep Dive 를 읽고 정리한 글 입니다.


 

5.1 값

 

  • 값 (value) = 표현식(expression)이 평가(evaluate) 되어 생성된 결과
  • 모든 값은 데이터 타입을 가지며 메모리에 비트의 나열로 저장
  • 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석 가능
    • ex) 0100 0001 : 숫자 해석 = 65 / 문자 해석 = A

 

평가

식을 해석해서 값을 생성하거나 참조하는 것

var sum = 10 + 20;
  • 변수는 단 하나의 값만을 할당 받음.
  • 변수에는 10 + 20 평가 됌
  • 생성된 숫자 값 : 30
  • sum의 메모리 공간에 저장된 것은 값인 30
    • => 10 + 20 은 할당이전에 평가되어 값을 생성

 

 


 

5.2 리터럴

 

리터럴

  • 사람이 이해할 수 있는 문자 또는 약속된 기호로 표기한 코드
  • 리터럴은 평가되어 값을 생성
  • 값을 생성하기 위해 미리 약속한 표기법
  • 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성

 

 


 

5.3 표현식

 

표현식

  • 값으로 평가될 수 있는 문
  • 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조
  • 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이루어짐
  • 값으로 평가될 수 있는 문은 모두 표현식
  • 문법적으로 값이 위치할 수 있는 자리는 표현식도 위치 할 수 있음
    • => 다른 표현식의 일부가 되어 새로운 값 생성 가능

 

표현식과 표현식이 평가된 값은 동등한 관계 = 동치 (equivalent)

var score = 50 + 50;

 

50 + 50 => 리터럴 + 연산자

평가되어 숫자 값 100 생성 => 표현식

 

score; 	// 100

변수 식별자를 참조 => 변수 값

식별자 참조는 값을 생성하지 않지만 값으로 평가 => 표현식

 

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

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

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

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

 

 


 

5.4 문

 

문 = 명령문

  • 프로그램을 구성하는 기본 단위
  • 최소 실행 단위
  • 토큰이 모여 문을 구성
  • 컴퓨터에 내리는 명령

 

프로그램 : 문의 집합

프로그래밍 : 문을 작성하고 순서에 맞게 나열

// 변수 선언문
var X;

// 할당문
X = 5;

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

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

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

 

 

토큰

문접적 의미로 더 이상 나눌 수 없는 코드의 기본 요소

 

 


 

5.5 세미콜론과 세미콜론 자동 삽입 기능

 

세미콜론

문의 종료

자바스크립트 엔진은 세미콜론으로 문이 종료한 위치를 파악 후 순차적으로 하나씩 문을 실행

 

자체 종결성 : 0개 이상의 문을 중괄호로 묶은 코드 블록 뒤에는 사용하지 않음

 

세미콜론 자동 삽입 기능 (ASI)

자바스크립트 엔진이 소스 코드를 해석할 때 자동으로 세미콜론을 붙임

개발자의 의도와 다를 수 있음

 

 


 

5.6 표현식인 문과 표현식이 아닌 문

 

표현식은 문의 일부일 수도, 그 자체로 문이 될 수도 있음.

표현식인 문 표현식이 아닌 문
값으로 평가 가능 값으로 평가 불가능
=>  변수에 할당 가능 변수에 할당 시 에러

 

 

완료 값

크롬 개발자 도구에서 표현식이 아닌 문을 실행햐면 undefined 출력

표현식의 평가 결과가 아님 => 변수에 할당, 참조 불가

 

크롬 개발자 도구에서 표현식인 문을 실행하면 평가된 값을 출력

 

 


https://wikibook.co.kr/mjs/

 

모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리

269개의 그림과 원리를 파헤치는 설명으로 ‘자바스크립트의 기본 개념과 동작 원리’를 이해하자! 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로 태어난 자바스크립트는 과도

wikibook.co.kr