[JS] 20장 strict mode

Jimyu·2023년 11월 5일
0

암묵적 전역

  • 변수 선언이 이루어지지 않아도 에러를 내지 않고 암묵적으로 자스 엔진이 전역 객체에 x 프로퍼티를 동적으로 생성하는 것.

➡️ 오류를 발생시키는 원인이 될 수 있으므로 키워드로 변수 선언하는 것이 바람직하다.

➡️ 이에 대한 보다 근본적인 해결책으로 ES5부터 strict mode가 추가 되었다.
자바스크립트 문법을 보다 엄격하게 적용해서 명시적인 에러를 발생시킨다.

➡️ ESLint 같은 린트 도구로도 비슷한 효과를 볼 수 있다. 린트 도구는 더 강력한 효과를 얻을 수 있다.(코딩 컨벤션까지 적용 가능하므로)

strict mode 사용하기

  • 전역 혹은 함수 몸체 앞쪽에 'use strict';를 추가하면 적용된다.
    • 전역에 추가 : 스크립트 단위로 적용 => 비추천(여러 스크립트가 쓰이고 있을 때 strict mode, non-strict mode 혼용으로 오류 발생 가능)
    • 함수 몸체 앞 : 해당 함수 및 중첩 함수에 적용 => 같은 맥락에서 함수 단위 적용도 비추천

➡️ strict mode는 즉시 실행함수로 감싼 스크립트 단위로 적용하는 것을 권장

strict mode 에러 종료

  1. ReferenceError : 암묵적 전역 관련 에러(선언하지 않은 변수 참조)
  2. SyntaxError
  • delete 연산자로 변수, 함수, 매개변수 삭제 시
  • 중복된 매개변수 이름 사용
  • with 문 사용

strict mode 특징

  1. 일반함수의 this가 undefined로 바인딩된다.(에러는 X)
  2. 매개변수에 전달된 이수를 재할당해서 변경해도 arguments 객체에 반영되지 않는다.
profile
블로그 이전 : https://jimyu-s-record.tistory.com/

0개의 댓글