오랫동안 JavaScript는 호환성 문제 없이 발전했습니다. 이전 기능은 변경되지 않았지만 새로운 기능이 언어에 추가되었습니다.
이는 기존 코드를 손상시키지 않는다는 이점이 있었습니다. 그러나 단점은 JavaScript 제작자가 내린 실수나 불완전한 결정이 언어에 영원히 갇혀 있다는 것입니다.
이는 ECMAScript 5(ES5)가 등장한 2009년까지의 경우였습니다. 언어에 새로운 기능을 추가하고 기존 기능 중 일부를 수정했습니다. 이전 코드가 계속 작동하도록 하기 위해 대부분의 수정 사항은 기본적으로 꺼져 있습니다. "use strict"
특별한 지시문을 사용하여 이를 명시적으로 활성화해야 합니다.
지시어는 문자열처럼 보입니다: "use strict"
또는 'use strict'
. 스크립트 상단에 위치하면 전체 스크립트가 "현대적인" 방식으로 작동합니다.
예를 들어:
"엄격하게 사용하세요"; // 이 코드는 현대적인 방식으로 작동합니다. ...
조만간 함수(명령을 그룹화하는 방법)를 배울 예정이므로 함수 시작 부분에 "use strict"
를 넣을 수 있다는 점을 미리 알아 두겠습니다. 그렇게 하면 해당 기능에서만 엄격 모드가 활성화됩니다. 그러나 일반적으로 사람들은 전체 스크립트에 그것을 사용합니다.
"use strict"가 맨 위에 있는지 확인하세요.
스크립트 상단에 "use strict"
가 있는지 확인하세요. 그렇지 않으면 엄격 모드가 활성화되지 않을 수 있습니다.
여기서는 엄격 모드가 활성화되지 않습니다.
Alert("어떤 코드"); // 아래의 "use strict"는 무시됩니다. 맨 위에 있어야 합니다. "엄격하게 사용하세요"; // 엄격 모드가 활성화되지 않았습니다.
"use strict"
위에는 주석만 표시될 수 있습니다.
use strict
취소할 수 있는 방법은 없습니다.
엔진을 이전 동작으로 되돌리는 "no use strict"
와 같은 지시어는 없습니다.
엄격 모드에 들어가면 되돌릴 수 없습니다.
개발자 콘솔을 사용하여 코드를 실행할 때 기본적으로 use strict
하지 않는다는 점에 유의하세요.
때때로 use strict
인해 차이가 발생하면 잘못된 결과가 나올 수 있습니다.
그렇다면 실제로 콘솔에서 use strict
?
먼저 다음과 같이 Shift + Enter를 눌러 여러 줄을 입력하고 맨 위에 use strict
넣을 수 있습니다.
'엄격하게 사용하세요'; <새 줄을 입력하려면 Shift+Enter> // ...귀하의 코드 <실행하려면 입력>
Firefox 및 Chrome과 같은 대부분의 브라우저에서 작동합니다.
그렇지 않은 경우(예: 오래된 브라우저에서) use strict
보장하는 추악하지만 안정적인 방법이 있습니다. 이런 종류의 포장지 안에 넣으세요.
(기능() { '엄격하게 사용하세요'; // ...여기에 코드가 있습니다... })()
질문이 당연하게 들릴 수도 있지만 그렇지 않습니다.
"use strict"
로 스크립트를 시작하는 것이 좋습니다. 하지만 무엇이 멋진지 아시나요?
최신 JavaScript는 use strict
자동으로 가능하게 하는 고급 언어 구조인 "클래스"와 "모듈"을 지원합니다. 따라서 "use strict"
지시어를 사용한다면 추가할 필요가 없습니다.
따라서 지금은 "use strict";
스크립트 상단에 환영 손님이 있습니다. 나중에 코드가 모두 클래스와 모듈에 있으면 생략할 수 있습니다.
지금까지 우리는 일반적으로 use strict
에 대해 알아봤습니다.
다음 장에서는 언어 기능을 배우면서 엄격 모드와 이전 모드의 차이점을 살펴보겠습니다. 다행히 그런 경우는 많지 않으며 실제로 우리 삶을 더 좋게 만듭니다.
이 튜토리얼의 모든 예제는 (매우 드물게) 별도로 지정하지 않는 한 엄격 모드를 가정합니다.