Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 'use strict'란 무엇이며, 왜 사용해야 할까?

엄격 모드(Strict Mode)란?

"use strict"는 자바스크립트의 지시문(directive)으로, 문자열 리터럴 형태의 표현식입니다. ECMAScript 5(JavaScript 1.8.5)에서 처음 도입되었으며, 이름 그대로 해당 코드가 엄격 모드에서 실행되어야 함을 자바스크립트 엔진에 알려주는 역할을 합니다.

엄격 모드가 활성화되면 기존에는 조용히 통과되던 실수들이 명시적인 오류로 처리됩니다. 예를 들어 선언하지 않은 변수에 값을 할당하거나, 읽기 전용 속성에 값을 쓰려는 시도 등이 오류로 잡힙니다. 이는 디버깅을 쉽게 만들고, 더 안전하면서도 최적화하기 좋은 코드를 작성하는 데 큰 도움이 됩니다.

엄격 모드 선언 방법

선언 방법은 매우 간단합니다. 스크립트나 함수의 시작 부분에 문자열 "use strict"를 추가하기만 하면 됩니다.

  • 전역 범위: 스크립트 최상단에 선언하면 해당 파일의 모든 코드에 적용됩니다.
  • 함수 범위: 함수 본문의 첫 줄에 선언하면 해당 함수 내부에만 적용됩니다.

예제

아래 예제에서는 엄격 모드에서 선언되지 않은 변수를 사용했기 때문에 오류가 발생합니다. 개발자 도구 콘솔(F12)을 열고 직접 확인해 보세요.

<!DOCTYPE html>
<html>
   <body>
      <p>변수를 사용했지만 선언하지 않았기 때문에 오류가 발생합니다.</p>
      <p>F8 키를 눌러 오류를 확인해 보세요.</p>
      <script>
          "use strict";
          a = 1;
       </script>
    </body>
</html>

위 코드에서 a = 1;은 일반 모드에서는 암묵적으로 전역 변수를 생성하지만, 엄격 모드에서는 ReferenceError가 발생합니다. 이처럼 엄격 모드는 실수로 인한 전역 변수 오염 같은 잠재적 버그를 조기에 발견하도록 도와주므로, 새로 작성하는 코드에는 항상 적용하는 것이 좋습니다.