모던 자바스크립트 튜토리얼
ko.javascript.info
ES5에서는 새로운 기능이 추가되고 기존 기능 중 일부가 변경되었다. 기존 기능을 변경하였기 때문에 하위 호환성 문제가 생길 수 있기 때문에 변경사항 대부분은 ES5의 기본 모드에선 활성화되지 않도록 설계되었다. 대신 use strict라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때만 이 변경사항이 활성화되게 해놓았다.
지시자 "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"를 붙일 필요가 없다.