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