본문 바로가기
Frontend/Javascript Typescript

[Javascript] 5. 표현식과 문 (모던자바스크립트딥다이브)

by 디스코비스킷 2025. 4. 6.
반응형

5-1. 값

  • 값: 식(표현식 expression)이 평가(evaluate)되어 생성된 결과
  • 메모리에 저장된 값은 데이터 타임에 따라 다르게 해석될 수 있다.
    • 0100 001을 숫자로 해석하면 65지만, 문자로 해석하면 ‘A’
  • 값의 생성
    • 리터럴(가장 기본적)
var sum = 10 + 20; // 30
  • 변수에 할당되는것은 값
  • 10+20이 평가된 결과인 숫자 30이 할당된다.

5-2. 리터럴

  • 리터럴: 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation)
  • 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성
3
  • 3은 단순한 아라비아 숫자가 아니라, 숫자 리터럴
  • 자바스크립트 엔진은 이를 평가해 숫자 값 3을 생성

5-3. 표현식

  • 표현식(expression): 값으로 평가될 수 있는 문(statement)
  • 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조
var score = 50 + 50; 
score; 
  • 변수식별자를 참조하면 변수 값으로 평가됨
  • 식별자 참조는 값을 생성하지는 않지만 값으로 평가되므로 표현식임
  • 표현식은 리터럴, 식별자, 연산자, 함수 호출 등의 조합으로 이뤄질 수 있음
  • 값으로 평가될 수 있는 문은 모두 표현식
  • 표현식과 표현식이 평가된 값은 동등한 관계, 동치(equivalent)

5-4. 문

  • 문(statement): 프로그램을 구성하는 기본 단위이자 최소 실행 단위
  • 토큰(token): 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 . 수없는 코드의 기본 요소
    • 키워드, 식별자, 연산자, 리터럴, 세미콜론, 마침표 등의 특수문자
  • 문은 명령문이라고도 함
    • 선언문, 할당문, 조건문, 반복문 등

5-5. 세미콜론과 세미콜론 자동 삽입 기능

  • 세미콜론은 문의 종료를 나타냄
  • 0개 이상의 문을 중괄호로 묶은 코드 블럭({…})뒤에는 세미콜론X
    • if문, for문, 함수
    • 자체 종결성(self closing)을 갖기 때문
  • 세미콜론은 생략가능
    • 문의 끝이라 예측되는 지점에 자동으로 붙여주는 세미콜론 자동삽입기능(ASI: automatic semicolon insertion)이 암묵적으로 수행되기 때문
  • 하지만 예측이 일치하지 않는경우가 있기때문에 되도록 사용하도록 하자!
    • ESLint에서도 세미콜론 사용은 기본
    • TC39(ECMAScript 기술 위원회에서도 세미콜론 사용 권장

5-6. 표현식인 문과 표현식이 아닌 문

  • 표현식인 문: 값으로 평가될 수 있는 문
    • 할당문
  • 표현식이 아닌 문: 값으로 평가될 수 없는 문
    • 변수 선언문
  • 구별하는 방법: 변수에 할당해보기
    • 변수선언문
// var x; 
var foo = var x;
  • 할당문: x = 100;
// x = 100; 
var foo = x = 100;

완료 값(completion value)

  • 표현식이 아닌 문을 실행하면 언제나 undefined를 출력.
  • 완료값은 표현식의 평과 결과가 아님
  • 크롬개발자도구에서 표현식인 문을 실행하면 언제나 평가된 값을 반환

 

반응형

최근댓글

최근글

© Copyright 2024 ttutta