Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

동그란 도그린

[모던 자바스크립트 Deep Dive🦎] 5장 : 표현식과 문 본문

FrontEnd/Javascript

[모던 자바스크립트 Deep Dive🦎] 5장 : 표현식과 문

도그rin 2023. 3. 22. 17:53

📍 값

  • 식(표현식)이 평가되어 생성된 결과
    1 + 2;  // 1 + 2는 평가되어 숫자 값 3을 생성
    

🔅 평가 : 식을 해석해서 값을 생성하거나 참조하는 것

 

📍 리터럴

  • 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 (ex: 정수, 문자열, 불리언 등)
  • 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성함

 

📍 표현식

  • 값으로 평가될 수 있는 문은 모두 표현식
// 리터럴 표현식
1
'Hello'

// 식별자 표현식 (이미 선언했다고 가정)
sum
person.name

// 연산자 표현식
1 + 2

// 함수/메서드 호출 표현식 (이미 선언했다고 가정)
square()

 

📍 문

  • 프로그램을 구성하는 기본 단위이자 최소 실행 단위
  • 문을 명령문이라고도 부름
  • 문은 여러 토큰으로 구성됨

🔅 토큰 : 문법적인 의미를 가지며, 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소

 

📍 세미콜론

  • 세미콜론(;)은 문의 종료를 나타냄
  • 0개 이상의 문을 중괄호로 묶은 코드 블록({ … }) 뒤에는 세미콜론을 붙이지 않음 (ex : if 문, for 문) ⇒ 이러한 코드 블록은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문
  • 문의 끝에 붙이는 세미콜론은 생략 가능 ⇒ 자바스크립트 엔진이 문의 끝이라고 예측하는 지점에 세미콜론을 자동으로 붙여주는 ‘세미콜론 자동 삽입 기능(ASI)이 암묵적으로 수행되기 때문

 

📍 표현식인 문과 표현식이 아닌 문

  • 표현식인 문은 값으로 평가될 수 있는 문
  • 표현식이 아닌 문은 값으로 평가될 수 없는 문
  • 위의 두 가지를 구별하는 방법은 변수에 할당해보는 것 ⇒ 표현식인 문은 값으로 평가되므로 변수에 할당 가능
// 변수 선언문은 표현식이 아닌 문
var x;

// 할당 문은 표현식인 문
x = 10;

// 표현식인 문은 값처럼 사용 가능
var foo = 20;
console.log(foo);  // => 20

🔅 크롬 개발자 도구에서 표현식이 아닌 문을 실행하면 언제나 undefined를 출력함 ⇒ 완료 값

// 변수 선언 문
var foo = 10;  // => undefined

🔅 크롬 개발자 도구에서 표현식인 문을 실행하면 언제나 평가된 값을 반환함

var num = 10;  // => undefined

// 표현식 문
100 + num;     // => 110
Comments