JavaScript(13) 'use strict'

김재홍·2022년 8월 28일
0

'use strict'

엄격모드

'use strict'는 ES5부터 지원하며,
암묵적인 느슨한 모드를 헤제하고,
명시적인 엄격한 모드를 사용하는 방법이다.

자바스크립트는 꽤 오랫동안 기존 기능을 변경하지 않으면서 새로운 기능을 추가하는 방향으로 발전해왔다.
하지만 초기에 만들어진 실수들이 언어에 지속적으로 남아있었기 때문에 ES5에서는 새로운 기능을 추가하며, 기존 기능의 일부를 변경하였다. 기존 기능을 변경하게 되면 호환성 문제가 발생하기 때문에 기본 모드에서는 변경된 기능을 활성화 하지 않도록 하였다.
대신 'use strict'라는 특별한 지시문을 스크립트 최상단에 작성해야만 변경된 기능이 활성화 되도록 하였다.

장점:

선언하지 않은 변수를 사용하는 것이 불가능하다.
delete를 사용하여 변수를 삭제하는 것도 불가능하다.
window객체를 this를 통해 참조하는 것이 불가능하다.

실수로 전역변수를 만드는 것이 불가능합니다.
암묵적으로 실패한 예외를 throw하지 못하는 할당을 만듭니다.
삭제할 수 없는 속성을 삭제하려고 시도합니다. -delete- (시도 효과가 없을 때까지)
함수의 매개변수 이름은 고유해야합니다.
this는 전역 컨텍스트에서 undefined입니다.
예외를 발생시키는 몇 가지 일반적인 코딩을 잡아내어 발생가능한 에러를 방지한다.
헷갈리거나 잘 모르는 기능을 사용할 수 없게 합니다.

단점:

일부 개발자는 익숙하지 않은 기능이 많습니다.
function.caller와 function.arguments에 더 이상 접근할 수 없습니다.
*** 서로 다른 엄격한 모드로 작성된 스크립트를 병합하면 문제가 발생할 수 있습니다. -> 스트립트모드 충돌이 발생할 수 있으므로 함수에 사용하는 것이 좋음. 즉시실행함수를 감싸서 use stirct를 달아주는 것이 좋다.

참고

0개의 댓글

관련 채용 정보