본문 바로가기
3.4 FrondEnd/React & JS

[Js] 엄격모드(strict mode)

by Dohi._. 2025. 1. 4.
728x90

엄격 모드는 JavaScript에서 코드를 더 안전하고 오류를 방지하기 위해 설정하는 기능입니다.

ES6(ES2015)부터 도입된 모듈 시스템은 기본적으로 엄격 모드를 적용하여 실행됩니다.

 

엄격모드(strict mode)?

JavaScript에서 잠재적인 오류를 방지하고자 한 기능으로 제약이 추가가 됩니다.

use strict;를 코드의 맨 위에 선언함으로써 활성화할 수 있습니다. 

 

엄격모드 선언방법

코드스크립트 전체, 함수, export(모듈)

모듈을 제외한 모든 상단에 명시

//----------------//
'use strict';
let x = 10;
delete x; // 전체가 엄격모드
//----------------//
function() {
  'use strict';
  // 함수 내부는 엄격 모드
  // 함수 외부는 비엄격 모드(느슨한모드)
};
//---------------//
{
  'use strict';
  // 이 블록 내부는 엄격 모드
  let x = 10;
  console.log(this); // undefined
}

// 이 블록 외부는 비엄격 모드(느슨한모드)
let y = 20;
console.log(this); // 전역 객체
//----------------//
//export는 자체적으로 엄격모드

 

엄격모드는 다음과 같은 제약이 추가가 되는데 

  1. 암시적 전역 변수 사용 금지
  2. 변수 삭제 금지
  3. 중복 매개변수 금지
  4. this가 undefined로 설정될 수 있음

예시

암시적 전역 변수 사용 금지

// 비엄격 모드에서는 전역 변수가 암시적으로 생성
x = 10; // 오류 없음
console.log(x);

// 엄격 모드에서는 오류 발생
'use strict';
x = 10; // ReferenceError: x is not defined

 

변수 삭제 금지

'use strict';
let x = 10;
delete x; // SyntaxError

 

중복 매개변수 금지

'use strict';
function sum(a, a) { // SyntaxError
  return a + a;
}

 

this가 undefined로 설정될 수 있음

'use strict';
function test() {
  console.log(this); // undefined
}
test();

 

 

다음과 같이 안전한 코딩 방식을 강제하게 되어 코드 품질을 높이는 데 도움을 줄 수 있으며 최적화 하는 방향을 도와줄 수 있습니다.

728x90

'3.4 FrondEnd > React & JS' 카테고리의 다른 글

[JS] Arrow function  (0) 2025.01.13
[JS] Import 그리고 export  (0) 2025.01.05

댓글