5장 표현식과 문

표현식(Expression)

  • 표현식이 평가되어 생성된 결과

  • 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석된다.
    • ex) 0100 0001 - 숫자로는 65, 문자로는 ‘A’
  • 값의 생성은 리터럴을 통해서

리터럴

// 리터럴 예시
100
10.5
0x41
'Hi'
true
null
{name : 'Lee'}
[1,2,3]
foo(){}
  • 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳 등) 또는 약속된 기호(“”,[],{} 등)를 사용해 값을 생성하는 표기법

    = 값을 생성하기 위해 미리 약속한 표기법

  • 자바스크립트 엔진은 런타임에 리터럴을 평가해 값을 생성

표현식

  • 값으로 평가될 수 있는 문(Statement)

    => 표현식은 값처럼 사용할 수 있다 = 값이 올 수 있는 자리에는 표현식도 올 수 있다.

  • 아래 예는 모두 표현식이다.

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

// 식별자 표현식
score
person.name
arr[1]

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

// 함수 & 메서드 호출 표현식
square()
person.getName()

문(Statement)

  • 프로그램 최소 실행 단위

  • 변수 선언문, 할당문, 함수 선언문, 조건문, 반복문 등
  • 세미콜론(;)은 문의 종료를 나타낸다.
  • 코드 블록에는 세미콜론을 붙이지 않는다. 코드 블록 자체가 문의 종결을 의미하기 때문에

    • 코드 블록 : 0개 이상의 문을 중괄호{}로 묶은 것
  • 세미콜론은 자동 삽입되어(by 자바스크립트 엔진) 생략 가능하지만 붙이는 걸 권장한다.

  • 문 = 표현식 + 표현식이 아닌 문
    • 표현식 : 값으로 평가될 수 있는 문 => 값처럼 사용할 수 있다. = 변수에 할당할 수 있다.

    • 표현식이 아닌 문 : 값으로 평가될 수 없는 문 => 값처럼 사용할 수 없다.

    • var x = 10; // 표현식이 아닌문
      x = 10; // 표현식
      var foo = (var x = 10) ; // SyntaxError : 표현식이 아닌 문을 변수에 할당
      var foo = (x = 10); // 가능 : 표현식을 변수에 할당
      

Reference

본 포스트는 이웅모, 모던자바스크립트 Deep Dive의 5장 내용을 요약 및 재구성한 것입니다.

Leave a comment