JavaScript | use strict

블로그 이사 완료·2022년 12월 26일
0
post-thumbnail

📍 use strict

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

"use strict";

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

"use strict"는 평범한 JavaScript에 몇가지 변경이 일어나게 한다.

  1. 기존에는 조용히 무시되던 에러들을 throwing합니다.
  2. JavaScript 엔진의 최적화 작업을 어렵게 만드는 실수들을 바로잡습니다.
    가끔씩 엄격 모드의 코드는 비-엄격 모드의 동일한 코드보다 더 빨리 작동하도록 만들어집니다.
  3. 엄격 모드는 ECMAScript의 차기 버전들에서 정의 될 문법을 금지합니다.

"use strict" 는 대개 스크립트 전체에 적용하지만, 스크립트 최상단이 아닌 함수 본문 맨 앞에 올 수도 있다. 그러면 오직 해당 함수만 엄격 모드로 실행된다.

"use strict"는 반드시 스크립트의 최상단에 위치시키자.

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

"use strict";

// 엄격 모드가 활성화되지 않는다.

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

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

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


📍 브라우저 콘솔

개발한 기능을 테스트하기 위해 브라우저의 콘솔을 사용하는 경우, 기본적으로 use strict 가 적용되어있지 않는다는 점에 주의해야한다.
use strict 에 영향을 받는 경우라면 개발자가 기대하지 않았던 결과를 얻을 수 있기 때문이다.

콘솔에서 'use strict'를 사용하는 방법은 'use strict’를 입력한 후, Shift+Enter키 를 눌러 줄 바꿈 해 원하는 스크립트를 입력하면 된다.

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

이 기능은 왠만한 브라우저에서 대부분 사용 가능하다.
브라우저가 오래 되어서 콘솔 창에 use strict 를 입력하는 게 불가능하다면, use strict 를 적용하는 가장 확실한 방법은 아래와 같이 코드를 래퍼로 감싸면 된다.

(function() {
  'use strict';

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

📍 'use strict’ 꼭 사용해야 하는가

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

결론은 코드를 클래스와 모듈을 사용해 구성한다면 "use strict" 를 생략해도 된다.

MDN | Strict mode

JavaScript Info | Strict mode

profile
https://kyledev.tistory.com/

0개의 댓글