암묵적인 ‘느슨한 모드(sloppy mode)’ 를 해제하고,
명시적인 ‘엄격모드(strict Mode)’ 를 사용하는 방법이다.
항상 그렇지만 잘 알고 사용하면 자바스크립트의 여러가지 잠재적인 오류를 막아주는데 많은 도움을 주지만 잘 못 사용하면 없더 ㄴ오류를 새로 만들어 내는 애물단지가 될 수 도 있습니다.
“use strict”
또는 ‘use strict’
를 다른문구 작성 전에 삽입합니다.
// 전체 스크립트 엄격 모드 구문
'use strict';
var v = "Hi! I'm a strict mode script!";
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."}
function strict() {
// 모듈이기때문에 기본적으로 엄격합니다
}
export default strict;
전역 객체인 this와 자바스크립트 함수를 사용해서 엄격모드가 실행중인지 확인할 수 있다.
function isStrictMode(){
return !this;
}
this는 엄격 모두에서 사용할 수 없기 때문에 this가 사용가능하면 일반모드, 엄격모드라면 !false 이기때문에 true가 반환됩니다.
‘use strict’ 는 더 엄격하게 코드 사용 규칙을 제한하고, 잠재적을 오류가 발생하라 수 있는 전역 변수 사용을 제한하기 때문에 더 좋은 코드를 작성하는데 도움을 줍니다. 그러나 어디까지 기계적인 문제들에 대해 오류를 표시해 몇가지 문제들을 피할 수 있게 해주는 것입니다.
‘use strict’가 아니어도 이런 잠재적인 대입 문제는 대부분의 경우 이후의 실행 로직에서 문제를 일으키기 때문에 오류를 확인하지 못하고 너어갈 가능성을 낮습니다. 그리고 경우에 따라서는 전역변수와 전역 this는 코드를 더 간결하고 짧게 만들어 주는데 도움이 되기도합니다.
‘use strict’사용이 비약적으로 코드의 품질을 높여주고 오류를 줄여주는 효과가 생기지는 않습니다.
이미작성해서 사용하고 있는 자바스크립트 파일에 ‘use strict’를 사용하는 것은 피해야 합니다. 정말 예기치 않은 문제를 발생시킬 수도 있습니다.
특히 전역 this와 전역변수를 사용하는 자바스크립트 코드는 ‘use strict’사용으로 인해 전면적인 수정을 해야할 수도 있습니다.