Deep Dive 05장 표현식과 문

@hanminss·2021년 11월 10일
0

Deep Dive

목록 보기
2/16
post-thumbnail

모던 자바스크립트 deep dive

05장 표현식과 문

오늘의 뼈때리는 구문 : 개념을 이해한다는 것은 바로 용어를 이해하고 설명할 수 있다는 것 ...

앞으로 문과 표현식이란 용어가 자주 등장할 것니 엔진의 입장에서 코드를 읽고 결과를 예측할 수 있어야 한다.

  • 값 : 값은 표현식이 평가되어 생성된 결과
  • 모든 값은 데이터타입을 가진다.
var sum = 10 + 20;
  • 위 sum변수에 할당되는건 10 + 20이 아닌 30

리터럴

  • 리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
10
  • 10은 단순한 숫자가 아닌 숫자 리터럴이다.
  • 자바스크립트 엔진은 이 숫자리터럴을 평가하여 값 10을 생성한다.
  • 알파벳, 한글, 특수기호 등도 마찬가지다.
  • 즉, 리터럴은 값을 생성하기 위해 미리 약속한 표기법이다.

표현식

  • 표현식: 값으포 평가될 수 있는 문(statement)이다.
  • 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.
  • 리터럴도 표현식이다.
  • 값으로 평가될 수 있는 문은 모두 표현식이다.
  • 표현식은 다른 표현식의 일부가 되어 새로운 값을 만들 수 있다.

  • 문 : 프로그램을 구성하는 기본 단위이자 최소 실행 단위
  • 문의 집합이 곧 프로그램
  • 문은 여러 토큰으로 구성
  • 토큰 : 문법적인 의미를 가지며 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
let a = 3 + 3 ;
// 문 : let a = 3 + 3 ;
// 토큰 : let, a, =, 3,+,;
  • 문의 종류 : 선언문, 할당문, 조건문, 반복문 등

세미콜론(;)

  • 자바스크립트 엔진은 세미콜론으로 문이 종료한 위치를 파악한다.
  • 코드블록을 종료하는 {} 뒤에는 붙이지않는다(종결의 의미를 담고있음)
  • 세미콜론은 생략이 가능하다.
  • 엔진이 문의 끝이라고 생각하는 부분을 예측하고 automatic semicolon insertion 기능을 암묵적으로 실행한다.
  • 간혹 개발자의 의도와 다르게 붙을수도 있다.
  • 붙이지 말자는 의견도 설득력이 있다고 한다. 하지만 붙이는게 절대적 의견이라고 한다.

표현식이 아닌 문

  • 변수 선언문은 표현식이 아니다. 하지만 할당문을 표현식이다.
let x; // 표현식 x
x=10; // 표현식 o
  • 표현식이 아닌 문은 값으로 사용할 수 없다.
let a = let x; // error
let b = x = 100; // b = 100

0개의 댓글