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는 자체적으로 엄격모드
엄격모드는 다음과 같은 제약이 추가가 되는데
- 암시적 전역 변수 사용 금지
- 변수 삭제 금지
- 중복 매개변수 금지
- 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 |
댓글