메뉴 보이기
Profile
이온디

2019.03.21

스크랩

JavaScript의 strict mode란 무엇인가?

조회 수 15 추천 수 0

Introduction

"use strict"는 ES5에서 새롭게 나온 directive입니다. 실제 수행 문장이 아니라 literal expression이기 때문에 이전 버전의 JavaScript에서는 무시됩니다.

일반적으로 JavaScript 코드 최 상단에 이 “use strict”가 위치하는데 이 의미에 대해서 간단하게 정리해 봤습니다.


“use strict”를 써야하는 이유

“use strict”의 목적은 우리의 코드가 strict mode로 실행되게끔 지시하는 것입니다. 여기서 말하는 strict mode란 프로그램 실행 시 예외를 발생시킬 만한 몇가지 특이한 동작을 수행할 수 없도록 엄격한 제한이 걸려있는 실행 context를 지칭합니다. 즉, 일반적으로 동작하는 코드를 “use strict”를 이용하면 에러가 발생할 수 있다는 말이지요.

“use strict”는 함수별로 따로 지정할 수 있습니다. 즉, 함수내부에 “use strict”를 선언하면 해당 함수는 strict mode로 실행되게 됩니다.

몇가지 예를 들어보죠.

"use strict";

x = 100;        // x가 선언되지 않았기 때문에 error 발생

console.log(x);
x = 3.14;       // strict mode가 아니기 때문에 에러 아님.

function myFunction() {
    "use strict";    y = 3.14;   // y가 선언되지 않았기 때문에 에러 발생
}

myFunction();
"use strict";

var x = 3.14;

delete x;   // strict mode에서는 delete를 사용할 수 없다.   
"use strict";

var public = 1500;   // strict mode에서는 키워드로 변수명을 쓸수 없다.

그 외의 예로는 함수의 매개변수의 리스트에서 중복된 부분이 있을 때 오류를 발생시키고 동일한 라이브러리를 중복해서 로딩하는 경우 에러를 발생시킵니다. (예를 들면, jQuerylibrary 중복로딩 )

결론적으로 잠재적인 오류가 발생할 수 있는 여지를 막아주도록 코드에 대한 문법 사항을 엄걱하게 지키도록 하는 directive정도로 인식하시면 될 듯 합니다.

결론은 고민하지 말고 무조건 써야된다!! 입니다. ^^

이 포스트의 내용은 w3schools.com을 참조했습니다. 조금 더 자세한 사항을 알고 싶으시면 해당 사이트를 방문하세요!!

End.


Profile
7
Lv
이온디

이온디 홈페이지는 간결하며,

 손쉽게 수정할 수 있습니다.

0개의 댓글

Profile
에디터
번호 제목 날짜 조회 수 추천 수 URL
공지 [추천사이트] 코딩을 배울 수 있는 사이트 2015.08.24 295 0  
46 [스크랩] Front-End 발전 역사와 개발 생태계 2019.03.21 64 0 https://moon9342.github.io/front-end-ecosystem 
[스크랩] JavaScript의 strict mode란 무엇인가? 2019.03.21 15 0 https://moon9342.github.io/javascript-use-strict 
44 [스크랩] Babel을 사용해보자 2019.03.21 22 0 https://moon9342.github.io/javascript-babel 
43 [스크랩] [Gulp.js] Gulp 입문 ① - Gulp에 대한 소개 2019.03.21 15 0 https://programmingsummaries.tistory.com/356 
42 [스크랩] 프론트엔드 개발을 위한 Gulp 2019.03.21 32 0 https://github.com/FEDevelopers/tech.des...95%9C-Gulp 
41 [스크랩] Grunt, Gulp, Webpack 2019.03.21 26 0 https://fullest-sway.me/blog/2017/03/29/tool-each/ 
40 [팁테크] webpack 2018.08.26 54 0  
39 [자료공유] PC/Mobile 구분하는 소스(php, javascript, nginx 등) 2018.04.12 43 0 http://detectmobilebrowsers.com/ 
38 [자료공유] protect.js prtsc 캡처 방지 소스 2017.05.08 0 0 http://stackoverflow.com/questions/31309...for-any-we 
37 [자료공유] 웹페이지 화면캡쳐(Printscreen)방지 소스 1 2017.05.08 1692 0 http://blog.daum.net/_blog/BlogTypeView....icleno=295 
36 [포럼] JAVASCRIPT (위시켓) 2016.07.06 56 0 http://blog.wishket.com/java%EC%99%80-ja...C%9D%80-2/ 
35 [포럼] PHP, ASP, JSP.. 어느 것을 고를까요? (위시켓 블로그) 2016.07.06 120 0 http://blog.wishket.com/q-php-asp-jsp-%E...%EC%9A%94/ 
34 [포럼] PHP 간단 개념과 장단점에 대해서 (위시켓 ) 2016.07.06 98 0 http://blog.wishket.com/php-%EA%B0%84%EB...C%84%9C-3/ 
33 [포럼] PHP, JSP, ASP 중 선택은? (joonia, 20101015) 2016.07.06 181 0 https://kldp.org/node/118666 
32 [스크랩] 개발자의 몸값을 올리는 10가지 방법 (Rich Hein, 2014,10.29) 2016.07.03 92 0 http://www.itworld.co.kr/slideshow/90233 
31 소프트웨어 개발 채용의 5가지 동향 (Sarah K. White, 2015.05.20) 2016.07.03 21 0 http://www.itworld.co.kr/news/93560 
30 자바스크립트는 개발 세계를 지배할 수 있을까 (Andrew C. Oliver, 2012.10.11) 2016.07.03 25 0 http://www.itworld.co.kr/news/78199 
29 [스크랩] 2016년과 이후 JavaScript의 동향 2016.07.03 242 0 http://d2.naver.com/helloworld/3618177 
28 [스크랩] 웹 퍼블리셔는 프론트엔드 개발자가 아니다? (by 끄적이는멀더끙) 2016.06.15 164 0 http://blog.publisher.name/1200 
27 [뉴스] Web frameworks for Swift, a DB for React Native, and iOS UI automation from Google 2016.03.04 155 0