표현식과 문

이다은·2023년 3월 9일
0
post-thumbnail

표현식

🥸 표현식은 값으로 평가될 수 있는 문으로, 표현식이 평가되면 새로운 값을 생성하거나 기존의 값을 참조합니다. 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이루어질 수 있습니다.

표현식의 종류

  • 리터럴 표현식
10
'Hi'
  • 식별자 표현식(선언이 이미 존재한다고 가정)
test
person.name
arr[0]
  • 연산자 표현식
10 + 20
sum = 10
sum !== 10
  • 함수.메서드 호출 표현식(선언이 이미 존재한다고 가정)
test()
person.getName()

🔥 표현식과 표현식이 평가된 값은 동등한 관계로, 표현식은 값처럼 사용할 수 있습니다. 즉, 문법적으로 값이 위치할 수 있는 자리에는 표현식도 위치할 수 있다는 것을 의미합니다.

  • 예시
let x = 1 + 2;
x + 3; // 6

x는 할당되어 있는 숫자 3으로 평가되기 때문에 숫자 값이 위치해야 할 자리에 표현식 x를 사용할 수 있습니다.


값은 표현식이 평가되어 생성된 결과를 말하며, 모든 값은 데이터 타입을 가집니다. 메모리에 2진수(즉, 비트)의 나열로 저장되며, 데이터 값에 따라 다르게 해석될 수 있습니다.

let sum = 10 + 20;

위와 같은 식이 있을 때, 식별자가 기억하는 메모리 공간에 저장된 것은 10 + 20이 할당 이전에 평가되어 생성된 값인 30입니다.


리터럴

리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기값을 말하며, 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성합니다.

리터럴의 종류

  • 정수 리터럴 -> 100
  • 부동소수점 리터럴 -> 10.5
  • 문자열 리터럴 -> 'Hi'
  • 불리언 리터럴 -> true/false
  • null 리터럴 -> null
  • undefined 리터럴 -> undefined
  • 객체 리터럴 -> {name: 'lee', age: '21'}
  • 배열 리터럴 -> [0, 1, 2]
  • 함수 리터럴 -> function() {}
  • 정규 표현식 리터럴 -> /[A-Z]+/g

🔥 리터럴은 값으로 평가되기 때문에 표현식입니다.


🥸 문은 프로그램을 구성하는 기본 단위이자 최소 실행 단위이며, 여러 토큰으로 구성됩니다. 문을 명령문이라고도 부르며 선언문, 할당문, 조건문, 반복문 등으로 구분할 수 있습니다. 문을 끝낼 때에는 종료를 나타내는 세미콜론을 붙여야 하며, 코드 블록은 자체 종결성을 갖기 때문에 세미콜론을 붙이지 않습니다.

문의 종류

  • 변수 선언문
let x;
  • 할당문
x = 2;
  • 함수 선언문
function test() {}
  • 조건문
if (true) { console.log("Hi"); }
  • 반복문
for (let i = 0; i < 10; i++) { console.log(i); }

🧐 해당 글은 책 모던 자바스크립트 deep dive를 참고하여 작성하였습니다.

profile
안녕하세요

0개의 댓글