'엄격 모드(strict mode)'에서 금지되는 행위들은
등 일반적인 JavaScript 코드에서 허용되는 몇몇 행위들이 금지된다.
엄격 모드는 일부 자바스크립트 오류를 예외로 처리하므로, 오류를 빨리 발견하여 디버깅하기 쉬워 에러를 감지하는데 좋다.
엄격 모드는 보안상의 취약점을 예방하고, 안전하지 않은 작업을 방지한다. 예를 들어, 암묵적인 전역 변수의 생성을 방지하여 의도치 않은 변수 충돌을 막습니다.
엄격 모드는 일부 최적화를 가능하게 하는데, 예를 들어, 엄격 모드에서는 eval() 함수의 사용이 제한되어 코드 실행을 최적화할 수 있다.
해결책: 엄격 모드를 적용하기 전에 기존 코드를 테스트하고, 엄격 모드에서 발생할 수 있는 예외를 파악하여 수정하면 보완할 수 있다.
해결책: 모든 변수를 선언하고, 함수 내에서 var, let, const 키워드를 사용하여 변수의 범위를 명시적으로 지정하면 된다.
코드 상단에 "use strict";를 추가하면 엄격 모드를 활성화할 수 있지만, 브라우저 호환성을 위해 스크립트 전체를 감싸는 방법도 고려할 수 있습니다. 예를 들어, 즉시 실행 함수(IIFE, Immediately Invoked Function Expression)로 스크립트를 감싸면 지역 스코프가 생성되어 엄격 모드가 적용된다.
use strict를 사용하면 오류 감지를 빨리하고, 암묵적 변수 생성하는 것을 방지 하여 코드 품질을 높일 수 있으며, 보안상 안정하지 않은 동작들은 금지하기 때문에 안정성 또한 향상될 것이다.
(function() {
"use strict";
// 엄격 모드가 적용된 코드
})();
물론 일부 브라우저에서 엄격 모드를 지원하지 않을 수도 있으나, 즉시 실행 함수로 스크립트를 감싼다면 브라우저가 다르더라도 엄격 모드를 적용할 수 있다.