교육 (Today I Learned)/Hanaro

[Hanaro] 11일차 / JavaScript (strict mode, closure, Memoization)

Bay Im 2024. 1. 31. 09:01

JavaScript - 스트릭트 모드

  • strict(엄격) mode
    • 오해의 소지가 있는 구문을 문법적으로 명확하게 평가
    • hoisting은 동일하나 block내 함수는 block scope를 갖는다.
    • 'use strict';
  • strict mode의 특징
    • 선언하지 않은 식별자는 access(접근)할 수 없다.
    • 암묵적 전역(var, implicit global)은 허용하지 않는다.
    • delete로 선언된 변수, 함수, 매개변수를 삭제할 수 없다.
    • block내에서 var은 sloppy(느슨한) mode와 동일한 scope이지만, 함수는 block scope 이다.
    • 한 함수에서 parameter(매개변수) 이름이 동일하면 안된다.
    • NaN, Infinite 등의 전역 프로퍼티에 값을 할당하면 안된다.
    • ESM module은 strict mode로 실행된다.

 

JavaScript - 클로저와 실행컨텍스트 심화

  • Closure(클로저)
    • 상위 scope의 식별자를 참조하는 하위 scope(함수, 메서드)가 외부에서 지속적으로 참조되어 상위 scope 보다 저 오래 살아있는 것
  • Memoization
    • 반복되는 결과를 메모리에 저장하여 같은 결과가 사용될 때 저장한 값을 사용해 빠르게 실행하는 기법
728x90