on
엄격한 사용이란? 설명된
엄격한 사용이란? 설명된
원문 읽기
도입
use strict는 자바스크립트에서 strict 모드를 활성화하기 위해 사용되는 지시어입니다. 이것은 단순히 코드 위에 있는 문자열입니다. 브라우저가 문자열을 통과하면 아래의 코드를 엄격한 모드로 실행합니다. 이 게시물에서는 엄격한 모드가 존재하는 이유와 사용 시기에 대해 알아보겠습니다.
엄격한 모드
자바스크립트의 엄격한 모드는 ECMAScript 5에서 수행되었다. 그 때까지 자바스크립트는 호환성 문제 없이 발전해 왔다. 비록 그것은 절대 그 코드를 깨지 않는다는 추가적인 혜택과 함께 왔지만, 그것은 또한 어떤 불완전함도 유지해야 한다는 것을 의미한다. 따라서 기존 코드가 작동할 수 있도록 하면서 일부 중단 변경을 수행하기 위해 엄격한 모드가 도입되었습니다.
자바스크립트 코드는 일반(현재는 "슬로피") 모드에서 의도한 대로 작동합니다. 엄격한 모드에서는 오류에 대한 여유를 줄이면서 더 제한적입니다. 또한 미래에 대한 호환성도 높일 것입니다.
엄격한 모드 사용
전체 스크립트 또는 개별 기능에 대해 엄격한 모드를 활성화할 수 있습니다.
전체 스크립트의 경우
전체 스크립트에 대해 엄격한 모드를 사용하도록 설정하려면 맨 위에 "엄격한 사용"을 제공합니다.
"use strict" const c = "The entire script now works in strict mode"
엄격한 모드 코드를 비스크립트 모드 코드와 혼합할 경우 문제가 발생할 수 있습니다. 엄격한 모드 코드가 상위 모드인 경우 전체 자바스크립트가 엄격한 모드에서 실행됩니다. 엄격하지 않은 모드 코드가 상위 모드인 경우 엄격한 모드는 사용할 수 없게 됩니다. 엄격한 모드 코드를 엄격하지 않은 코드와 혼합하는 것은 이상적이지 않다.
개별 기능의 경우
개별 기능에 대해 엄격한 모드를 사용하기 위해 기능 본문 내부에는 동일한 문구를 넣었습니다.
function strictmode() { "use strict" // function definition }
ECMAScript 2015
2015년 ECMAScript, 더 유명한 ES6는 모듈과 클래스를 도입했습니다. 클래스와 관련된 모든 코드는 기본적으로 엄격한 모드에서 실행됩니다. 모듈에서 내보내기 키워드를 사용하여 내보내는 모든 항목이 엄격한 모드에 있습니다.
function strictmode() { // function definition // runs in strict mode } export default strictmode
명명된 내보내기에도 마찬가지입니다.
export function strictmode() { // function definition // runs in strict mode }
왜 엄격한 모드인가?
이미 언급한 바와 같이 엄격한 모드는 개발자에게 더 제한적인 환경을 제공합니다. 예를 들어 변수를 선언합니다.
정상적으로 쓰는 동안에는 선언 없이 값을 할당할 수 있습니다.
randomVariable = 10
그러나 엄격한 모드에서는 오류가 발생합니다.
"use strict" randomVariable = 10 // throws a reference error
따라서 우리는 항상 var, let 또는 cont를 사용하여 varibale을 선언해야 합니다. 이것은 실수로 전역 변수를 만드는 것을 불가능하게 만든다.
"use strict" var random = "string" const num = 10 random = 23 // works because already declared
엄격 모드는 정의되지 않은 전역, NaN 등과 같은 쓰기 불가능한 전역에도 값을 할당할 때 오류를 발생시킵니다.
엄격한 모드에서는 중복 매개 변수도 금지됩니다.
function add(a, b, b) { "use strict" return a + b + b // throws an error }
엄격한 모드에서는 각 매개 변수가 고유해야 합니다. 이러한 행동 변화는 거의 없습니다. 이 mdn 문서에서 변경 사항에 대한 자세한 설명을 읽을 수 있습니다.
언제 엄격한 모드를 사용해야 합니까?
기존 코드와 충돌하지 않는 것이 이상적입니다. 엄격한 모드는 코드를 깔끔하고 미래에 대비하기 위한 것이므로 피할 이유가 없습니다. 그러나 브라우저가 엄격한 모드로 구현했는지 확인하려면 충분한 기능 테스트를 수행해야 합니다. 엄격한 모드는 이제 10년 된 기능이며 모든 주요 브라우저에서 사용할 수 있습니다.
from http://every-issue.tistory.com/3 by ccl(A) rewrite - 2021-09-29 12:01:15