Javascript: Strict mode

dev5hjae·2024년 10월 29일

Javascript

목록 보기
3/9

Strict mode 란?

ECMAScript 5 에서 소개된 Javascript의 strict mode는 기존에 무시되던 에러들을 콘솔에서 에러 메시지를 통해 문제를 알려준다.

예를 들어,

  • 선언되지 않은 변수 사용: strict mode에서는 변수를 선언하지 않고 사용하면 ReferenceError가 발생합니다.
  • 중복 매개변수: 함수 정의 시 중복된 매개변수를 사용하면 SyntaxError가 발생합니다.
  • 읽기 전용 속성 수정: 읽기 전용 속성에 값을 할당하려고 하면 오류가 나옵니다.

Strict mode 적용하기

1. 전체 스크립트에서 선언

strict mode를 활성화하려면 코드의 최상단에 "use strict";를 추가하면 된다.

// 전체 스크립트 엄격 모드 구문
"use strict";
let v = "Hi!  I'm a strict mode script!";

2. 함수에서 선언

함수에 strict mode를 적용하기 위해, 함수 본문 처음에 다음의 구문을 넣는다.
"use strict";

function strict() {
  // 함수-레벨 strict mode 문법
  "use strict";
  
  function nested() {
    return "And so am I!";
  }
  return "Hi!  I'm a strict mode function!  " + nested();
}
function notStrict() {
  return "I'm not strict.";
}

Strict mode 변화

Strict mode는 문법과 런타임 동작을 모두 검사하여, 실수를 에러로 변환하고, 변수 사용을 단순화 시켜준다.

  • 변수 선언 없이 사용 불가:
    변수를 선언하지 않고 사용하면 에러가 발생한다. 예를 들어, x = 3;는 strict mode에서 오류를 발생시킵니다. 반드시 var, let, const로 선언해야 한다.
"use strict";
mistypedVaraible = 17; // ReferenceError를 발생시킴
  • 객체 프로퍼티:
    읽기 전용 프로퍼티나 없는 프로퍼티에 값을 할당하려고 하면 에러가 발생한다.
"use strict";
var testObj = Object.defineProperties({}, {
    prop1: {
        value: 10,
        writable: false
    },
    prop2: {
        get: function () {
        }
    }
});
testObj.prop1 = 20; // TypeError 발생
testObj.prop2 = 30;

0개의 댓글