[딥다이브] 002.표현식과 문

seo young park·2021년 12월 21일
0
post-thumbnail

1. 값

  • 값: 표현식이 평가되어 생성된 결과
  • 변수: 하나의 값을 저장하기 위해 확보한 메모리공간을 식별하기 위해 붙인 이름
  • 평가: 식을 해석해서 값을 생성하거나 참조
변수에 값이 할당되는 과정

var sum = 10 + 20;

//var sum 변수 선언
//10+20 평가되어 숫자 값 30을 생성
//sum = 30  숫자 값 30이 할당

2. 리터럴

  • 리터럴(literal): 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법
  • 아라비아 숫자, 알파벳, 한글
  • 미리 약속된 기호 ('',"",[],{},// ...)
  • 리터럴은 값으로 평가됨. 따라서 리터럴도 표현식.

3. 표현식

  • 표현식은 값으로 평가되어 새로운 값을 생성하거나 기존값을 참조하는 문
var score = 100;   // 리터럴 100은 엔진에 의해 평가되어 값을 생성하므로 표현식
var score = 50 + 50; // 50+50으로 평가되어 숫자 값 100을 생성하므로 표현식
score; // 값을 생성하진 않지만 변수 식별자를 참조하여 변수 값(100)으로 평가되므로 표현식
  • 리터럴, 식별, 연산자, 함수 호출 등의 조합으로 이뤄짐
//리터럴 표현식
10
"hello"

//식별자 표현식 (선언이 존재한다고 가정)
sum
person.name
arr[1]

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

// 함수 / 메서드 호출 표현식(선언이 이미 존재한다고 가정)
square()
person.getName()
  • 표현식은 표현식으로 평가된 값과 동등한 관계이므로 값처럼 사용가능
var x = 1 + 2;
x + 3; // 6

숫자 값으로 평가될 수 있는 표현식(x)를 숫자 값 대신 사용

4. 문

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

//할당문
x = 5;

//함수 선언문
function foo () {}

//조건문
if(x>1){console.log(x);}

//반복문
for(var i=0; i<2; i++){console.log(i);}

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

  • 세미콜론(;) 문의 종료를 나타내며. 엔진은 세미콜론을 통해 종료 위치를 파악하고 순차적으로 문을 실행함
  • 단, 0개 이상의 문을 중괄호로 묶은 코드블록({..}) 은 자체 종결성을 갖고 있어 세미콜론을 붙이지 않음
    if문, for문, 함수 등의 코드블록
  • 세미콜론 자동 삽입기능이 있어서 생략 가능하지만 가끔 오류가 있어 사용 권장

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

  • 표현식과 문
var x; // 문 o 표현식 x  ... 변수 선언문은 값으로 평가될 수 없음
x = 1+2; // 문 o 표현식 o ... 할당문은 값으로 평가될 수 있음
  • 표현식과 문을 구분하는 간단한 방법 : 변수에 할당해보기

1. 변수 선언문
var foo = var x; // SyntaxError

2. 할당문
var x;
x = 100;
var foo = x = 100;
console.log(foo); // 100
  • 크롬 개발자도구 활용 : 완료 값
  • 표현식이 아닌 문(변수 선언문,조건문)

undefined 출력

  • 표현식

평가된 값 반환

0개의 댓글