모던 JavaScript 튜토리얼 - 엄격 모드

crewd·2021년 1월 4일
0
post-thumbnail

모던 자바스크립트 튜토리얼

ko.javascript.info

엄격모드

ES5에서는 새로운 기능이 추가되고 기존 기능 중 일부가 변경되었다. 기존 기능을 변경하였기 때문에 하위 호환성 문제가 생길 수 있기 때문에 변경사항 대부분은 ES5의 기본 모드에선 활성화되지 않도록 설계되었다. 대신 use strict라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때만 이 변경사항이 활성화되게 해놓았다.

use strict

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

예시:

"use strict"

//이 코드는 모던한 방식으로 실행

"use strict"는 스크립트 최상단이 아닌 함수 본문 맨 앞에 올 수도 있다.
이렇게하면 오직 해당 함수만 엄격 모드로 실행 된다.

❗ "use stirct"는 반드시 최상단에 위치 시켜야한다.

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

❗ "use stirct"를 취소할 방법은 없다.

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

브라우저 콘솔

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

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

콘솔에서 사용 하려면 use strict를 입력 후 Shift + Enter를 눌러 줄 바꿈을 하고 원하는 스크립트를 입력하면 된다.

'use strict' <Shift + Enter를 눌러 줄 바꿈>
// ... 테스트하려는 코드 입력
<Enter를 눌러 실행>

브라우저가 오래 되어서 use strict를 입력하는게 불가능 하다면, 코드를 래퍼로 감싸면 된다.

(function() {
  'use strict'
  // ... 테스트하려는 코드
})()

use strict를 꼭 사용해야 할까?

모던 자바스크립트는 '클래스’와 '모듈’이라 불리는 진일보한 구조를 제공한다.(클래스와 모듈에 대해선 뒤에서 학습할 예정). 이 둘을 사용하면 use strict가 자동으로 적용된다. 따라서 이 둘을 사용하고 있다면 스크립트에 "use strict"를 붙일 필요가 없다.

다음 챕터부터는 특별히 언급이 없는 한 모든 예시에는 엄격 모드를 적용할 예정

profile
공부

0개의 댓글