Jun 개발노트

코드스피치 강의 ES6+ 2회차 정리

July 18, 2020

외부 라이브러리와 복잡한 클래스를 이해 못하는 이유?

  1. FLOW에 대해서 이해하지 못하고 있는 상태
  2. FLOW 제어하지 못하기 떄문에 FLOW 제어 코드를 봐도 모르는 것

LABEL, BREAK, CONTINUE

  1. LABEL IDENTIFIER :

    • 변수를 선언할 때처럼 만들 수 있으나, 마지막은 : 으로 끝나야 한다.
    • 특징

      • 스코프의 기준은 함수!, 블록이 아니다
      • 레이블 범위 => 레이블 레인지
      • 레이블은 레이블이 끝나는 부분을 호출한다(일반 함수는 바디 첫 부분을 호춣해서 실행)
  2. BREAK LABEL ;

    • 현재 레이블 컨택스트를 탈출 할 때 사용
    • Break 라벨은 익명으로 사용되면 현재 포함 되 있는 익명 레이블을 생성시켜 탈출한다.
  3. CONTINUE LABEL ;

    • 컨티뉴는 익명 없으므로 항상 다음 단계로 넘어간다.
  4. 결론

    • 레이블을 통해 흐름을 제어 할 수 있으며, 함수 및 {}을 기준으로 흐름을 나누어 줄 수 있다.
    • 이터레이터 셋(for 문에서 사용되는 레이블) : 별도의 레이블을 생성안해도 사용 가능
    • 레이블 셋(중괄호를 이용해서 사용되는 레이블) : 없으면 안된다. 무조건 레이블을 만들어줘야함

자바스크립트에 더 깊이 알아보자

  1. 레코드란?

    • Javascript 엔진은 코드나 함수를 기준으로 하나의 레코드로 생성하여 실행시킨다
    • 여러개의 레코드로 구성된 하나의 실행 파일을 만들어준다
    • 레이블 또한 하나의 레코드인데 레이블이 부정확하거나 이상하면 파일을 만들지 못해 문법 에러 발생
  2. 변수의 특징

    • 변수는 영원히 존재하지 않고 특정 시점이 되면 사라진다.
    • 라이프 사이클과 접근권한(Scope)를 가진다.
    • 하지만 자바스크립트는 접근권한을 라이프 사이클로 하나의 뜻으로 사용된다.
  3. 자유변수

    • 함수를 기준으로 매개변수, 지역변수 외에는 자유변수 이다.
    • 클래스는 기준은로 생성자의 매개변수, 멤버 변수, 메서드의 메개변수 외의는 자유변수다.
    • 자유변수란, 함수나 인스턴스의 상관없이 자기는 자기의 권한을 모르는 것
    • 자유변수란, 나의 생명주기 및 스코프 안에 있어도 내가 사용되는 변수는 한정 되있는데 그 외는 자유변수
    • 이러한 자유변수가 사용되는 곳을 클로져라고 한다.
  4. 쉐도잉

    • 덮어씌어진다는 의미로 똑같은 변수의 이름이 있다면 가까운 쪽으로 값이 할당된다는 것
    • 레이블은 쉐도잉이 일어나지 못한다, Syntax Error 발생(레코드를 생성 못하기 때문에)

SWITCH / IF / IF-ELSE

  1. SWITCH

    • 스위치 문안에 있는 중괄호는 특수 레이블 블록이라고 한다
    • 다른 언어들은 case를 맵으로 구성하는데 자바스크립트는 레이블을 통해서 구현
    • 두개의 조건을 판단하기 때문에 에러가 발생할 확률이 높다 default 문을 꼭 작성해야함
  2. IF-ELSE

    • 다른 문과 다른게 두개의 문을 가진다
    • Mandatory => 무조건 else 문에서 실행시켜야 할 문을 해야 한다.
    • ELSE IF()는 지양한다. 개발자는 분기를 처리하는 기준이 많아지면 안된다. 다시 조건문을 만들어라.
  3. 결론 : 복잡성을 줄이는 것은 얼마나 조건문을 쉽고 예외처리를 해줬는가에 달렸다.

FOR / while / do-while

  1. for

    • 첫번째는 문/식, 두번째는 trusy이면 실행할 값, 세먼제는 문/식
    • 모두다 비워졌있으며 예외조건으로 Trusy로 판단하여 무한 루프
  2. while

    • 단문을 짜면 안된다. 무조건 중문! 두줄 이상으로 짜서 확실히 해라
    • 조건에 대한 변수? 값? 식? 을 꼭 중문안에서 변화를 주어야 한다.
    • 유지보수에 용이하다. 테스트 코드를 짜기에도 좋다.
  3. do-while

    • while가 동일하지만, 미리 한번 실행한다는 특징을 가진다.
  4. 결론 : 코드를 작성할때는 항상 쉽고, 예외를 처리할수 있게 짜야한다.

Written by Junho You 배운것을 기록하자