ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 함수 vs 블록 스코프
    Front-end/Javascript 2021. 4. 13. 22:01

    변수와 함수를 스코프 안에 숨기는것은 종종 변수값의 겹쳐쓰기를 초래한다. 

    무한 루프 
    bar() 내부의 대입문은 지역 변수로 선언해서 사용해야한다. 

     

    스코프 역할을 하는 함수 

    (function .... : 함수 표현식

    function이 구문의 시작 위치에 있다면 함수선언문이며, 그외의 경우는 함수 표현식이다.

     

    익명함수 표현식 

    익명함수는 쉽게 입력할 수 있는 장점 때문에 많은 라이브러리에서 이 표현식을 권장하나, 몇가지 단점이 있다.

    1) 디버깅이 어 더어려움 2)  기능을 나타내는 이름이 없기때문에 어떤기능을 위한 함수인지 명확하지 않다.

     

    IIFE ( Immediately Invoked Function Expression ) 

    ()로 함수를 감싼 형태는 함수를 표현식으로 바꾸고, 두번째 ()는 함수를 실행시킨다. IIFE는 익명함수로 흔하게 사용된다. 

     

    블록 스코프

    블록스코프의 목적은 변수를 최대한 사용하는 위치에서 가깝게 최대한 작은 유효 범위를 갖도록 선언하는 것이다. 

    - try / catch : catch 부분에서 선언된 변수는 catch 블록 스코프에 속한다. 

    - let : 선언된 변수를 둘러싼 블록의 스코프에 속한다. 

    가비지 컬렉션 

    click 함수는 someData 가 불필요하나, click 함수가 해당 스코프 전체의 클로저를 가지고 있기 때문에 자바스크립트 엔진은 데이터를 남겨둘 것이다. 

    : 명시적으로 블록을 선언하여 someData의 영역을 한정시켰다.

     

     

     

    출처 : You don't know JS 

     

    'Front-end > Javascript' 카테고리의 다른 글

    일급 객체(first-class object)  (0) 2021.04.29
    toString() 과 String() 형변환의 차이?  (1) 2021.04.28
    [강제변환]  (0) 2021.04.12
    변수의 선언과 호이스팅  (0) 2021.04.08
    스코프(Scope)와 실행 컨텍스트  (0) 2021.04.08
Designed by Tistory.