구버전/JavaScript

[Javascript] strict mode

고래강이 2024. 1. 18. 18:05

개요

  • 엄격모드란?

 


엄격 모드 (strict mode)

ES5의 등장으로 인해 기존에 사용하던 기능 중 일부가 변경되었다. 이에 따라서 기존까지 사용하던 코드에서 문제가 발생할 수 있기에 이러한 변경된 사항들을 적용하려면 'use strict'라는 특별한 지시자를 이용해서 엄격 모드를 활성화 했을 때만 이 변경사항이 활성화되게 해놓았다.

 

사용방법

'use strict';

...
  • 반드시 최상단에 위치시켜 활성화를 시켜야 하며 보다 상단에 위치한다면 적용되지 않는다.
  • 함수 안에서도 사용이 가능하다

 

발생하는 제약 조건

  • 전역 변수를 허용하지 않으며 선언 시 오류가 발생
  • 변수 이름 선인 및 사용시 var를 누락하면 오류 발생
  • 값 할당 실패 시 오류 발생 (NaN = 1)
  • 삭제할 수 없는 속성 삭제 시 오류 발생 (Object.prototype)
  • 읽기 전용 속성에 쓰기를 하면 오류 발생
  • 객체 리터러의 모든 속성 이름은 고유해야 함 (const x = {x1: '1', x1: '2'})
  • 함수의 파라미터는 고유해야 함 (function clac(x, x){...})
  • with 키워드 금지... 등등