Skip to content
himprover
GitHubVelog

[번역] JavaScript의 엄격 모드(Strict Mode) 이해하기

Translate, JavaScript4 min read

banner

이 게시물은 원본 아티클인 Understanding JavaScript Strict Mode 를 한글로 번역한 게시글입니다. 게시물 내용의 저작권은 원작자 Accreditly 에게 있습니다.

JavaScript 에서는 '엄격 모드(strict mode)'라고 부르는 기능을 제공합니다. ECMAScript 5(ES5) 에 따르면 이것은 개발자들이 흔히 발생할 수 있는 함정을 피하도록 도와준다고 소개합니다. 이번 아티클에서는 엄격 모드가 무엇인지, 어떻게 활성화하는 지, 어떤 이점을 제공하는지에 대해 파헤쳐보도록 하겠습니다.

이 아티클보다 더 자세히 알고 싶다면 우리의 웹사이트에서 확인해보세요. (Understanding JavaScript Strict Mode on Accreditly)[https://accreditly.io/articles/understanding-javascript-strict-mode]

엄격 모드가 뭔가요?

엄격 모드는 JavaScript에서 제한적인 변형에 명시적으로 참여하는 방법입니다. 엄격모드에서 JavaScript는 소리 없는 에러들을 대상으로 에러를 발생시켜서 처리합니다. 이는 JavaScript 엔진이 최적화를 어렵게 만드는 실수를 고치고, 미래 버전의 ECMAScript 구문을 사용하는 등의 행위를 제한합니다.

엄격 모드 활성화

JavaScript에서 엄격 모드를 활성화하려면 "use strict" 문자열을 사용하면 됩니다. 이는 전체 스크립트 또는 개별 함수 내에서 수행할 수 있습니다.

전체 스크립트에서 사용 예제

'use strict';
var v = "Hello, I'm in strict mode!";

개별 함수에서 사용 예제

function strictFunc() {
'use strict';
var v = "Hello, I'm in strict mode inside a function!";
}

"use strict" 지시문은 오직 스크립트 또는 함수가 시작할 때 인식됩니다.

엄격 모드를 사용할 때 이점

엄격 모드는 몇 가지 방법으로 도움을 줍니다.

  1. 흔하게 발생하는 코딩 실수를 잡아내고 "안전하지 않음" 을 행합니다.

인스턴스 변수는 반드시 var, let 또는 const로 선언되어야 합니다. 변수가 선언되지 않으면 오류가 발생합니다.

'use strict';
x = 3.14; // This will cause an error because x is not declared
  1. 미래의 ECMAScript에 예약된 단어를 사용하는 것을 방지합니다.
'use strict';
var let = 'Hello'; // This will cause an error because "let" is a reserved word in ES6
  1. eval()과 인수를 단순화 합니다.

엄격모드에서는 eval() 내부에서 선언한 변수가 그 밖에 생성되지 않습니다.

'use strict';
eval('var x = 10;');
// This will cause an error because x is not defined outside the scope of eval()
console.log(x);
  1. this를 메서드나 생성자가 아닌 함수에서는 undefined로 제한합니다. 엄격모드가 아닐때는 this는 기본적으로 전역 객체로 설정됩니다. 브라우저 환경에서는 window가 전역 객체 입니다.
'use strict';
function myFunction() {
console.log(this); // Will output: undefined
}
myFunction();

엄격 모드를 사용하면 조용히 무시될 수 있는 에러들을 잡는데 도움을 줍니다. 또한 잠재적 문제 발생 구문과 비효율적인 코드를 예방합니다. 엄격모드는 JavaScript 코드를 견고하고 유지보수하기 쉽게 만들어주며, "use strict" 지시문으로 스크립트를 시작하는 것이 좋은 습관입니다.