2.3 엄격 모드

컬러·2021년 1월 17일
0

JavaScript

목록 보기
4/27

자바스크립트는 꽤 오랫동안 호환성 이슈 없이 발전해왔다. 기존의 기능을 변경하지 않으면서 새로운 기능들이 추가되었다.

덕분에 기존에 작성한 코드는 절대 망가지지 않는다는 장점이 있으나, 자바스크립트 창시자들이 했던 실수나 불완전한 결정이 언어 안에 영원히 박제된다는 단점 도 생겼다.

use strict

지시자 "use strict" 혹은 'use strict' 는 단순한 문자열처럼 생겼다. 하지만 이 지시자가 스크립트 최상단에 오면 스크립트 전체가 "모던한" 방식으로 동작합니다.

"use strict";

// 이 코드는 모던한 방식으로 실행된다.
  • "use strict" 는 스크립트 최상단이 아닌 함수 본문 맨 앞에 올 수도 있다!
  • 이렇게 하면 오직 해당 함수만 엄격 모드로 실행된다. 그러나 엄격 모드는 대게 스크립트에 전체에 적용한다.

⚠️ "use strict" 는 반드시 최상단에 위치시키자

"use strict" 는 스크립트 최상단에 있어야 한다는 점을 잊지 말자. 그렇지 않으면 엄격 모드가 활성화 되지 않을 수도 있다.

다음 코드에서는 엄격 모드가 활성화 되지 않는다!

alert("some code");
// 하단에 위치한 "use strict"는 스크립트 상단에 위치하지 않으므로 무시된다.

"use strict";
// 엄격 모드가 활성화되지 않는다.

"use strict"의 위에는 주석만 사용할 수 있다.

⚠️ "use strict" 를 취소할 방법은 없다.

자바스크립트 엔진을 이전 방식으로 되돌리는 "no use strict" 같은 지시자는 존재하지 않는다.

엄격모드가 적용되면 돌이킬 방법은 없다.

브라우저 콘솔

개발한 기능을 테스트하기 위해 브라우저 콘솔을 사용하는 경우, 기본적으로 use strict 가 적용되어있지 않는다는 점에 주의해야 한다.

use strict 에 영향을 받는 경우라면 개발자는 기대하지 않았던 결과를 얻을 수 있기 때문이다.

그렇다면 어떻게 해야 콘솔에서 use strict 를 사용할 수 있을까?

'use strict'를 입력한 후, Shift+Enter키를 눌러 줄 바꿈 해 원하는 스크립트를 입력하면 된다.

'use strict'; <Shift+Enter를 눌러 줄 바꿈 함>
//  ...테스트하려는 코드 입력
<Enter를 눌러 실행>
  • 이 기능은 Firefox와 Chrome 같은 유명한 브라우저에서 대부분 사용 가능하다.

'use strict’를 꼭 사용해야 하나요

  • "당연히 사용해야 하는 거 아니야?"라는 생각이 드시겠지만, 꼭 그렇지만은 않는다.

누군가는 스크립트 맨 윗줄엔 "use strict"를 넣는 게 좋다고 권유할 수는 있다.

그러나 모던 자바스크립트는 '클래스’와 '모듈’이라 불리는 진일보한 구조를 제공한다.

이 둘을 사용하면 use strict가 자동으로 적용되기 때문에, 이 둘을 사용하고 있다면 스크립트에 "use strict"를 붙일 필요가 없다.

  • 결론은 이렇다.

코드를 클래스와 모듈을 사용해 구성한다면 "use strict"를 생략해도 된다. 그러나 아직은 이 둘을 배우지 않았으니 "use strict"를 적용하겠다.

두 모드에서 차이를 보이는 기능이 많지 않다는 점과 엄격 모드를 사용하면 개발자의 삶의 질이 조금 더 높아진다는 점이다.


0개의 댓글