자바스크립트 기본 - 엄격 모드

anonymous·2023년 3월 10일
0

요약

  • 자바스크립트에서 "strict 사용"은 언어에 새로운 기능을 변경하고 추가해야 하기 때문에 이전 버전과의 호환성 문제를 방지하기 위해 생겼어.
  • 기본적으로 브라우저 콘솔에서는 'strict 사용'이 적용되지 않고 코드를 테스트하려면 수동으로 활성화해야 해.
  • 그치만 '클래스' 및 '모듈'의 고급 구조를 사용하는 경우 'use strict'가 자동으로 적용되어 스크립트에 추가할 필요가 없어.

'use strict' 등장 배경

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

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

이런 상황은 ECMAScript5(ES5)가 등장하기 전인 2009년까지 지속되었어.
그런데 새롭게 제정된 ES5에서는 새로운 기능이 추가되고 기존 기능 중 일부가 변경되었어.
기존 기능을 변경했기 때문에 하위 호환성 문제가 생길 수 있지? 그래서 변경사항 대부분은 ES5의 기본 모드에선 활성화되지 않도록 설계되었어.
대신 use strict라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때만 이 변경사항이 활성화화돼!

"use strict"; // "use strict"는 스크립트 최상단에 위치해야만 활성화됨

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

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

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

'use strict' 꼭 필요한가?

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

참고

https://ko.javascript.info/strict-mode

profile
기술블로거입니다

0개의 댓글