javascript strict mode 정리

[markdown]
# javascript strict mode

strict모드를 jslint를 사용하게 되면서 사용하고 있는데, 이게 뭔지 모르는 채로 그냥 사용하는 것은 뭔가 찜찜했기에,찾아서 정리함.

strict모드는 파일, 프로그램 또는 함수의 시작 부분에 `”use strict”;`를 추가하여 strict모드를 추가 할 수 있다.

### strict모드의 제한

– Strict모드에서 변수를 선언하지않고 사용할 수 없다.
– 읽기 전용 속성에 값을 할당할 수 없다.
– extensible특성이 false로 설정된 객체에 속성을 추가할 수 없다.
– configurable특성이 false로 설정된 속성을 삭제할 수 없다.
– 객체에 같은 이름의 속성을 두번이상 정의 하지 못한다.
– 함수에서 파라메터명에 같은 이름을 두번 이상 사용하지 못한다.
– implements, interface, package, private, protected, public, static, yield 등과 같은 예약어를 변수 또는 함수 이름으로 사용 할 수 없다.
– 숫자 리터럴에 8진수 값을 할당하거나 8진수 값에 이스케이프를 사용할 수 없다.
– this의 값이 null또는 undefined인 경우 전역 객체로 바뀌지 않음.
– 문자열 “eval”, “arguments” 식별자(함수, 변수, 매개변수 명)으로 사용 할 수 없다.
– 함수선언을 statement나 함수 블록내에서 중첩해서 할 수 없다.
– 변수가 eval함수내에서 선언 되는 경우 해당 함수 밖에서 사용할 수 없다.
– 로컬 arguments 객체의 값을 변경할 수 없다.
– arguments.callee를 허용하지 않음
– with문을 허용하지 않음
[/markdown]

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다