LHJ

I'm a FE developer.

3. 자바스크립트 기초

02 Aug 2020 » codespitz_re

자바스크립트 기초

Lexical Grammar

  1. Control Character (제어문자)
  2. White Space (공백문자) : 유니코드 공백문자 50개 넘게 있음
  3. Line Terminators (개행문자) : 한 줄을 끊는 것도 수많은 유니코드가 있음
  4. Comments (주석)
  5. Keyword (예약어)
  6. Literals (리터럴) : 값이나 객체를 표현하는 더 이상 나눌 수 없는 최소 단위

Language Element

  1. Statements 문

    컴파일러, 실행기에 주는 힌트다.
    메모리에 남지 않는다. 실행기가 그 힌트를 받아서 처리할 뿐.

    • 공문 : 빈문(아무것도 없는 문을 문으로 인정)
    • 식문
    • 제어문
    • 선언문 : 메모리에 변수를 할당하는 문이다. 변수(메모리 주소의 별명, 타입, 크기) - 이를 Vtable에 써놓는다.
    • 단문
    • 중문 : 중괄호로 묶어서 여러개의 문을 넣는다.
  2. Expression 식

    식이란 값이다. 식은 무조건 값으로 도출된다. 함수도 값으로 도출

    • 값식
    • 연산식
    • 호출식 : 호출하면 undefined든 뭐든 값으로 도출
  3. Identifier 식별자

    • 기본형
    • 참조형
    • 변수
    • 상수
// 공문 예시
for (var i = 0; i<5; i++);
;;;;;;;;;;

// 자바스크립트는 if else문만 존재. else if 문은 존재X
if (true);
if (true);;
if (true) {;;}

var a, b
if (true) a=3; b=5

var a, b
if (true) {a=3; b=5}

if (true) a=3; else b=5;

if (true) a=3; else if (a>2) b=3; else b=5;
if (true) a=3; else {if (a>2) b=3; else b=5;}

{}

리터럴을 만들기 위한 {} 뒤엔 ;
중문을 만들기 위한 {} 뒤엔 ;를 안붙인다.
중문 {}뒤에 ; 들어가면 공문이 하나 더 들어간 것이다.

const f = (a) => {}

위 {}는 함수 바디로 인식한다.

const f = (a) => ({})

이때는 오브젝트 리터럴로 인식한다.

다음시간부터 배울 내용

  1. Sync Flow : 동기화 흐름 (적재된 명령이 실행되는 동안 못 멈춘다.)
  2. Flow Control : 흐름제어문
  3. Sub Flow : 어떤 플로우는 반복적으로 쓰인다. (함수 또는 클래스)