모던 JS DeepDive(5장)

Minji Lee·2023년 12월 13일
0

5장 표현식과 문

값(value)

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

  • 모든 값은 데이터 타입을 가짐 → 데이터 타입에 따라 다르게 해석될 수 있음
  • 메모리에 2진수로 나열

리터럴(literal)

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

  • JS 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성

    리터럴예시비고
    정수 리터럴100v
    부동소수점 리터럴10.5
    2진수 리터럴0b010000010b로 시작
    8진수 리터럴0o1010o으로 시작
    16진수 리터럴0x410x로 시작
    문자열 리터럴‘Hello’
    불리언 리터럴true/false
    null 리터럴null
    undefined 리터럴undefined
    객체 리터럴{ name: ‘Lee’, address: ‘Seoul’ }
    배열 리터럴[ 1, 2, 3]
    함수 리터럴function () {}
    정규 표현식 리터럴/[A-Z]/g

표현식(expression)

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


문(statement)

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

ex) var sum = 1+2;

💡 표현식인 문 vs 표현식이 아닌 문
표현식인 문: 값으로 평가되므로 변수에 할당 가능
표현식이 아닌 문: 값으로 평가할 수 없으므로 변수에 할당하면 에러 발생함
ex) var x; // 변수 선언문은 표현식이 아닌 문
x = 100; // 할당문은 표현식인 문


세미콜론(;)

문의 종료 의미

  • JS 엔진은 세미콜론으로 문이 종료한 위치 파악하고 순차적으로 하나씩 문을 실행
  • 세미콜론 생략 가능
    • JS 엔진이 소스코드 해석할 때 문의 끝이라고 예측되는 지점에 세미콜론 자동으로 붙여주는 세미콜론 자동 삽입 기능(ASI)이 암묵적으로 수행
    • ASI의 동작과 개발자의 예측이 일치하지 않는 경우 간혹 존재하므로 주의해야 함!

0개의 댓글