ES5, ES6 이란 단어를 보신적 있으신가요. ES란 ECMAScript
로 쉽게말하면 자바스크립트의 버전
이라고 생각하시면 되겠습니다.
자바스크립트는 꽤 오랫동안 화환성 이슈 없이 발전해왔습니다. 기존의 기능을 변경하지 않으면서 새로운 기능이 추가되었다고 합니다. 덕분에 기존의 코드들이 망가지지 않는다는 장점이 있었습니다.
하지만 ES5가 등장하면서 새로운 기능이 추가되고 기존 기능 중 일부가 변경
되기 시작했습니다. 때문에 낮은 버전과 새로운 버전에서 작성된 코드의 결과가 달라지는 호환성 문제가 생기게 되었습니다.
// [비엄격모드]
console.log(this) // window
// [엄격모드]
console.log(this) // undefined
// 둘이 결과가 다름
때문에 "use strict"
라는 특별한 지시자를 통해서만 ES5 버전이 활성화되게 해 놓았습니다.
스크립트 최상단
에 혹은 함수 본문 맨 앞
에 위치시켜야 작동된다고 합니다.
모듈이나 클래스를 사용해 코드를 작성한다면 자동적으로 "use strict"
활성화 된다고 합니다. 이는 최신 자바스크립트의 새로운 기능이기 때문인가 봅니다.