Search

17장 엄격(strict) 모드 = Eslint

대분류
언어
서적
소분류
JS DeepDive
태그
strict
최종 편집 일시
2024/10/27 15:40
생성 일시
2024/02/01 10:43
14 more properties

strict mode = Eslint

x를 선언할 때 키워드를 붙이지 않고 선언 시, 암묵적 전역과 같은 오류를 발생시킬 원인이 되는 일이 발생할 수 있는데, 이 strict mode를 통해 문법을 좀 더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생 시킨다.
-> Eslint 같은 도구 써도 됨

strict mode의 적용

use strict;
위 키워드로 사용한다.

전역에 strict mode를 적용하는 것은 피하자

외부 서드 파티 라이브러리가 nono-strict mode인 경우도 있어서 전역에 strict mode 적용은 바람직 하지 않다. --> 즉시 실행함수 선두에 strict mode를 적용한다.

함수 단위로 strict mode를 적용하는 것도 피하자

함수 일일히 적용하기 버겁고 strict mode 적용된 함수가 외부 컨텍스트에 strict mode를 적용하지 않는다면 문제가 발생할 수 있기 때문에 즉시 실행 함수로 감싼 스크립트 단위로 적용하는 것이 바람직하다.

strict mode가 발생시키는 에러

암묵적 전역 --> 선언하지 않은 변수 참조 시 ReferenceError
변수, 함수, 매개변수의 삭제 --> delete로 삭제 시 SyntaxError
매개변수 이름의 중복 --> 중복된 매개변수 사용 시 SyntaxError
with 문 사용 --> SyntaxError

strict mode 적용에 의한 변화

일반함수의 this --> undefined이 바인딩 됨
매개변수에 전달된 인수를 재할당 하여도 arguments 객체에 반영 X