엄격모드 'strict mode'의 배경과 기능

ES5 (ECMA Script5) 가 등장하기 전까지

호환성 이슈 없이 발전해왔다

즉, 기존의 기능을 변경하지 않으면서 새로운 기능이 추가 되었다

 

ES5에서 새로운 기능이 추가

기존 기능 중 일부가 변경되었다.

-> 호환성 문제 발생 가능

 

호환성 문제로 인해

변경사항 대부분은 ES5의 기본 모드에선 활성화 되지 않도록 설계됨 

대신!!!

use strict 로 엄격모드 (strict mode) 를 활성화 했을 때만 ES5의 변경 사항이 활성화 되도록 해둠

' use strict '

이 use strict 지시자가 스크립트 최상단에 오면 스크립트 전체가 모던한 방식으로 작동

  • 반드시 스크립트 최상단에 위치
  • + 스크립트 최상단 뿐만 아니라 함수 본문 맨 앞에 올 수도 있다
    • 이때는 오직 해당 함수만 엄격 모드로 실행
"use strict";

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

 

즉 아래와 같은 경우에는 엄격모드가 활성화 되지 않는다

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

"use strict";

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

 

참고로 자바스크립트 엔진을 이전 방식으로 되돌리는 지시자는 없다

따라서 use strict (엄격모드)가 적용되면 되돌릴 수 없다

 

브라우저 콘솔은 'use strict'가 적용되어 있지 않다

어떻게 콘솔에서 use strict를 사용할 수 있을까

'use strict' 입력후

Shift + Enter 키를 눌러 줄바꿈한 후

스크립트 입력

 

'use strict' 사용은 필수?

클래스, 모듈을 사용하면 자동으로 'use strict' 가 적용

따라서 클래스와 모듈을 사용한다면 스크립트에 'use strict'를 붙이지 않아도 됨

'개발 > JavaScript' 카테고리의 다른 글

[js]padStart와 padEnd로 00:00 시간 포맷 형식 구현  (0) 2025.02.04
OBJECTIVE