[모던 JavaScript 튜토리얼] 2.3 엄격 모드

모던 JavaScript 튜토리얼을 읽고 정리하였습니다.

엄격 모드

자바스크립트는 기존 기능을 변경하지 않고 새로운 기능을 추가하여 오랫동안 호환성 이슈 없이 발전해왔다. 그러나 새롭게 제정된 ES5에서는 기존 기능 중 일부가 변경되었다. 따라서 하위 호환성 문제의 위험이 있었기 때문에 ES5의 기본 모드에선 활성화되지 않도록 설계한 대신 use strict라는 특별한 지시자를 사용해 엄격 모드를 활성화했을 때만 이 변경사항이 활성화되게 해놓았다.


use strict

“use strict”/’use strict’가 지시자이며, 스크립트 최상단에 이 지시자를 붙이면 스크립트 전체가 모던한 방식으로 동작하며, 함수 본문 맨앞에 붙이면 해당 함수만 엄격 모드로 실행된다. 대개는 스크립트 전체에 적용한다

"use strict";

use strict를 취소할 수 있는 방법은 없다.

자바스크립트 엔진을 이전 방식으로 되돌리는 지시자는 없다.


브라우저 콘솔

브라우저 콘솔을 사용할 때에는 use strict가 적용되지 않는다. use strict에 영향을 받는 경우라면 개발자는 기대하지 않았던 결과를 얻을 수 없기 때문이다.

콘솔에서 use strict를 사용하려면 ‘use strict’를 입력한 후, Shift+Enter키를 눌러서 줄바꿈 해 원하는 스크립트를 입력하면 된다. 이 기능은 Firefox와 Chrome 같은 브라우저에서 대부분 사용 가능하다.

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

브라우저가 오래 되어서 콘솔 창에 use strict를 입력하는 것이 불가능할 때에는 아래와 같이 코드를 래퍼로 감싸야 한다.

(function() {
  'use strict';

  // ...테스트하려는 코드...
})()

use strict를 꼭 사용해야 하는가?

use strict를 넣는게 무조건 좋다고 권유할 수는 없으나 모던 자바스크립트는 클래스와 모듈이라는 진일보한 구조를 제공한다. 이 둘을 사용하면 use strict가 자동으로 적용되므로 스크립트에 use strict를 붙일 필요가 없다.

따라서 코드를 클래스와 모듈을 통해 구성한다면 지시자를 생략해도 되나, 이 둘을 아직 배우지 않았으므로 지시자를 늘 붙여주는 것이 좋다.

Comments