ice rabbit programming

[JS] 엄격 모드 본문

Development/JavaScript

[JS] 엄격 모드

판교토끼 2022. 3. 26. 16:25

자바 스크립트는 오랜 기간 발전하면서 하위 호환성을 유지한 채로 발전해왔다. 하지만 2009년 ES5가 출시되면서, 일부 기능이 변경되고 추가되면서, 하위 호환성 이슈가 발생할 수 있게 되었다.

그래서 이를 해결하고자, 기본 모드에서는 새로운 기능이 동작하지 않고, 'use strict'라는 지시어가 있을 경우에만 동작하도록 적용하였다. 이것이 엄격 모드이다.

'use strict' 지시어는 단순히 string처럼 보이지만, 최상단에 위치하는 경우 해당 스크립트는 모던 자바스크립트로 동작하게 된다.

'use strict'

console.log('모던 JS로 실행됩니다')
  • use strict 지시어는 최상단에 위치하지 않을 경우 적용되지 않을 수 있다. 즉, 중간에 넣을 경우 모던 자바스크립트로 동작하지 않게 되어 오동작을 일으킬 수 있으므로 최상단에 위치시켜야 한다.
  • 함수의 최상단에 위치할 경우, 함수 내에서만 엄격 모드가 적용된다.
  • 엄격 모드를 취소하는 지시어는 없다. 선언되면 그 이후에는 쭉 모던 자바스크립트로 동작한다.

추가적으로, 모던 JS에서는 클래스와 모듈 형식을 제공하는데, 이러한 것을 사용하면 자동으로 엄격 모드가 적용 된다. 즉, 클래스와 모듈을 사용할 경우 'use strict'를 사용하지 않아도 엄격 모드가 적용 된다.