ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Scope, Closure
    Note 2020. 10. 27. 20:40

    Scope

    - 변수 접근 규칙에 따른 유효 범위

    - 변수는 어떠한 환경 내에서만 사용 가능, 프로그래밍 언어는 각각의 변수 접근 규칙을 가진다.

    - 변수와 그 값이, 어디서부터 어디까지 유효한지를 판단하는 범위

    - 자바스크립트는 기본적으로, 함수가 선언되는 동시에 자신만의 scope를 가진다.

     

    Local Scope vs Global Scope

    - 변수 firstName에 접근할 수 있는 범위가 존재

    - Local Scope 안쪽에서 선언된 변수는 밖에서 사용할 수 없다.

     

     

    - 안쪽 Scope에서 바깥 변수/함수를 접근하는 것은 가능

    - 바깥쪽 Scope에서 안쪽 변수/함수를 접근하는 것은 불가능

     

     

    - Socpe는 중첩이 가능 : 함수 안에 함수를 넣을 수 있다.

    - Global Scope는 최상단의 Scope로 전역 변수는 어디서든 접근이 가능

    - 지역 변수는 함수 내에서 전역 변수보다 더 높은 우선순위를 가진다.

     

    Function Scope vs Block Scope

    Block : 중괄호로 시작하고 끝나는 단위

    - block 범위를 벗어나는 즉시 변수를 사용할 수 없다.

     

    var 키워드 vs let 키워드

    - 변수를 정의하는 또 다른 키워드 var

    - 자바스크립트는 기본적으로, 함수 단위로 자신만의 Scope를 가진다(var 키워드).

    - 그러나, Block 단위로 Scope를 구분했을 때에 예측하기 쉬운 코드를 작성할 수 있다(let 키워드).

     

    - block 범위를 벗어나도(같은 function scope에서는) 사용이 가능

     

    Const 키워드

    - 값이 변하지 않는 변수, 즉 상수를 정의할 때 사용하는 키워드

    - let 키워드와 동일하게 Block Scope에 따른다.

    - 값을 재정의하려고 하면 TypeError가 발생한다.

     

    Closure

    - 외부 함수의 변수에 접근할 수 있는 내부 함수

    - 이미 실행이 종료된 함수의 변수나 함수를 참조할 수 있는 링크를 가진 내부 함수

    - 이러한 작동 원리를 일컫는 용어

    - 클로저 함수 안에서는 지역 변수(innerVar), 외부 함수의 변수(outerVar), 전역 변수(globalVar)의 접근 전부 가능

     

    유용한 클로저 예제

    커링 : 함수 하나가 n개의 인자를 받는 대신, n개의 함수를 만들어 각각 인자를 받게 하는 방법

     

     

    x의 값을 고정해놓고 재사용할 수 있다.

     

    'Note' 카테고리의 다른 글

    고차함수, 콜백함수  (0) 2020.10.27
    HTML  (0) 2020.10.27
    CLI  (0) 2020.10.27
    객체  (0) 2020.10.27
    배열  (0) 2020.10.27

    댓글