엄격모드

김하은·2023년 5월 11일
0

ECMAScript5부터 도입된 기능인 엄격모드.
기존에 무시되던 에러들로 하여금 에러를 발생시키게 한다.
파일전체에 적용시킬수도, 함수 스코프에 적용시킬수도 있으나 블록스코프는 불가능하다.

"use strict"; // 파일 전체에 적용

function f() {
  "use strict"; // 함수 스코프에 적용
}

이를 통해 실수를 잡아낼 수 있고, 안전하지 않은 것들을 예방할 수 있다.

  • var가 생략된 변수를 전역객체에 바인딩 하지 않음
  • NaN = 5 같은 할당구문은 불가.
  • 제거할 수 없는 프로퍼티를 제거할 수 없음(delete Object.prototype)
  • 함수의 매개변수의 이름은 중복될 수 없음
  • with키워드는 사용할 수 없다.
  • 일반변수를 삭제할 수 없다. (delete x)
  • arguments.callee 를 사용할 수 없다.
  • arguments객체는 항상 원본인자를 저장한다. 즉, 매개변수를 바꾸어도 arguments의 값은 바뀌지 않는다.
  • 8진수 사용불가
  • eval은 새로운 변수를 스코프에 추가하지 않는다.
  • JSLint나 ESLint와 같은 린터를 사용할 수 있으면 사용하되. 없으면 "use strict"를 사용하는 것이 좋다.

0개의 댓글