본문 바로가기
자바스크립트

[JavaScript 공부 -4] JavaScript의 "use strict"

by 곰돌찌 2019. 1. 17.


  오래전부터 자바스크립트는 호환성 문제 없이 발전해 옴.  기존의 기능이 변경되지 않는 동안 자바스크립트에는 새로운 기능이 추가됨.  그래서 기존에 존재하는 코드를 변경할 필요가 없다는 장점을 가지고 있으나, 부작용으로는 자바스크립트의 제작자의 불안정한 부분이나 실수들이 이 언어에 영원히 남게됨.


이 경우는 2009년 ECMAScript 5(ES5)가 나타났을 때, 자바스크립트에 새 기능을 추가하고 기존의 기능의 일부를 수정하려고 했음. 기존의 코드가 작동되게 유지하기 위해서, 대부분의 수정이 기본 설정을 해제하게 됨. 기본 설정을 유지하기 위해서는 명시적으로 "use strict"라는 명령을 사용할 수 있음.


"use strict"


이 명령어는 String처럼 보임. ("use strict"나 'use strict' 라고 사용) 스크립트 최상단에 이 명령어를 넣게 되면 모든 스크립트가 현대(최신)의 방식으로 작동하게됨. 


사용하는 방법은 아래와 같음

1
2
3
4
"use strict"
 
//extra javascript code
......

cs


아래에는 function들을 넣을 예정이지만, 이런 function 종류는 다른 포스팅에서 하겠음.


이 "use strict"는 최상단에 두어 전체 스크립트 파일을 조작하는 대신에 대부분 function의 시작 부분에 둘 수도 있음. 이렇게 하면 그 function에만 strict mode가 적용되게 됨. 그러나 대부분 사람들은 "use strict"를 전체 스크립트 파일 위쪽에 두고 사용하여 전체 스크립트에 이 모드가 적용되도록 함.


# "use strict"를 최상단에 둘 것!


"use strict"는 스크립트 위에 두는 것을 추천함. 그렇지 않으면 strict mode가 작동 하지 않을 수도 있음


# use strict mode를 취소시키는 방법은 없음!

use strict모드를 해제하기 위한 "no use strict"라는 명령어는 없음!!! 한번 strict mode로 들어가면 되돌릴 수 없음!



Always "use strict"



strict mode와 "기본" mode에 대해서 이야기 하진 않았지만 언어 특성을 배울 때 이 두 모드의 차이에 대해서 언급할 예정. 다행이 차이가 그렇게 많이 않기 때문에 너무 걱정할 필요가 없음. 


지금은 "use strict"에 대해서 아는 것만으로도 충분함.


1. "use strict" 명령어는 자바스크립트 엔진을 최신의 모드로 변경해주기 때문에 일부 기존의 기능의 동작들이 일부 변경될 수 있음. 이 부분은 나중에 다시 언급할 예정.

2. strict mode는 스크립트나 function의 위에 "use strict"라는 명령어를 넣어 주면 나타나게 됨. class나 module등과 같은 일부 언어 특성은 자동으로  strict mode로 변경됨.

3. strict mode는 모든 최신 브라우저에서 지원됨.

4. 항상 스크립트 위에 "use strict"로 시작하는 것을 추천함.



[출처 및 번역 : https://javascript.info/strict-mode ]

댓글