Post

[JavaScript] 복습 1

[JavaScript] 복습 1

데브자스

JavaScript 기본

변수 선언 키워드

  • var : 변수 재선언 가능, 따라서 사용하지 않는 키워드
  • let : 변수 재할당 가능
  • const : 변수 재할당 불가


자료형

기본 자료형

  • string : ‘’ or “” or ``으로 감싸진 문자
  • number : 일반적인 숫자
  • boolean : true / false
  • undefined : 변수가 선언되었지만,
    초기화되지 않았을 때 자동으로 할당되는 값
  • null : 의도적으로 “값이 없음”을 나타내는 값
  • symbol : 고유하고 변경 불가능한 값 (ES6부터 도입)
  • bigint : 엄청 큰 정수 (최신의 자료형!) (ES11 / ES2020부터 도입)
    숫자 뒤에 n을 붙여 사용

참조 자료형

  • 배열: [ ]
  • 함수: function
  • 객체: { }


연산자

  • 산술 연산자 +, -, *, /, %
  • 증감 연산자 ++, --
  • 대입 연산자 =, +=, -=, …
  • 비교 연산자 ==, <=, >=, …
  • 삼항 연산자 ? :
  • 논리 연산자 !, &&, ||


반복문

do...while, while, for, for...in, for...of


함수

  • 함수 선언문

    1
    
      function sum() {...}
    
  • 함수 표현식

    1
    
      const sum = function sum() {...}
    
  • 화살표 함수 (≠ 함수 표현식)

    1
    
      const sum = () => {...}
    



JavaScript 실행 개념

  • 인터프리터언어: 첫줄부터 마지막줄까지 순차적으로 실행

실행 컨텍스트

  • 자바스크립트 코드가 실행되는 독립적인 공간
  • 실행 컨텍스트호출 스택에 집어 넣음

    Image
    실행 컨텍스트의 lexical environment

    • RECORD: 선언부분(식별자)을 기록함.
      >현재 범위의 식별자해당 값을 관리
      → (var로 선언된 식별자는 선언시, undefined의 값으로 초기화됨)
    • OUTER: 상위 스코프의 참조
      아래에 쌓여있는 실행 컨텍스트(상위 스코프)의 연결통로
      선언된 값을 외부에서 찾을 때 사용
  • 전역 실행 컨텍스트
    • 고유한 하나로 실행됨
  • 함수 실행 컨텍스트
    • 함수가 실행될 때 마다 생김
  • 예시) 2개의 함수 실행

    Image
    Image
    Image

  • 예시) 2개의 함수 실행 (다른 함수의 호출을 안에 넣음)

    Image
    Image


호이스팅

선언부분최상단으로 끌어올려진 것 같은 현상
var로 선언된 식별자는 선언시, undefined의 값으로 초기화됨
function로 선언된 식별자는 선언시, 함수 값으로 초기화됨
let, const로 선언된 식별자는 선언시, 참조 에러 발생!


TDZ 일시적 사각지대

TDZ(Temporal Dead Zone)

  • 스코프 시작~초기화 직전까지의 구간TDZ라 일컫는다.
  • let과 같은 식별자는 선언과 초기화가 분리되어 진행되어,
    초기화는 코드 실행 후에 이뤄져서 발생하므로,
    초기화 이전에 호출 시, 참조 에러가 생긴다.
  • 따라서, TDZ에 빠지게된다고 한다.


클로저

  • 함수가 자신이 선언될 때의 실행 컨텍스트의 스코프를 기억하는 기능
  • 스코프를 기억하여 함수가 실행된 이후에도 변수 값 유지
  • 예시
    함수가 반환되어 종료되어도, 해당 변수를 계속 사용할 수 있음

    Image
    Image
    해당 변수는 계속 임시적 저장

This post is licensed under CC BY 4.0 by the author.