2015년 1월 22일 목요일

[JavaScript] Strict Mode를 사용해야 하는 이유

JavaScript 의 모체인 ECMAScript 는 C와 C를 이은 언어들, JAVA, C++ 등의 문법적인 요소들을 많이 이어 받아 비슷한 점들이 매우 많다. 하지만 그와 다른점이 있다면 몇몇 문법적인 요소들을 사용자의 자유에 맞기고 그리 철저하게 강요하지 않는다는건데, 만약 제대로된 문법을 지키지 않고, 단지 에러가 나지 않는다는 이유로 엉망진창인 프로그래밍하게되면 ECMAScript Core 가 새 버젼으로 바뀌게 될 경우에 큰 문제를 마주치게 될 수도 있다.

ECMA 스크립트는 버젼이 바뀌면서 새로운 기능들과 요소들을 추가하게 되는데 만약 당신이 이러한 요소들을을 고려하지 않고 미래에 쓰일 Identifier들이나 키워드들을 지금 당장의 편의를 위해서 사용해버리면 추후에 많은 에러를 양산하게 될 수도 있고 결국 이는 모든 코드의 재 검사, 재 작성으로 이어지게 된다.

또한, 웹브라우져들은 각각 다른 내장 자바스크립트 엔진을 사용하는데
Mozila Firefox = SpiderMonkey
Google Chrome = V8
Internet Explorer = Chakra
이런 엔진에 따라 인터넷 익스플로러에서 작동하는 코드가 다른 브라우져에서 작동하지 않는 경우가 발생할 수도 있다. 문제는 개발환경이 매우 다양한 자바스크립트 개발과정에서 이러한 기준을 정한채 개발하는게 초보 개발자들에게는 어렵다는건데,

이러한 이유에서인지 ECMAScript 5에 들어서 Strict mode 라는게 생겼다. 이 Strict Mode는 코드 컴파일시 ECMA Script의 문법 요소들과 Reserved Keyword 들의 미사용을 철저하게 강요해 일반 실행 모드보다 더 많은 예외(Exception)들을 발생시키게하여 궁극적으로는 안전한 자바스크립트 코드를 작성하는데 목적을 두고 있다.

Strict Mode 는 아래와 같이 실행이 가능하다.

"use strict";//이 컨텍스트에서 스트릭트 모드를 사용한다

function testFunction()
{

"use strict";
//이 컨텍스트에서 스트릭트 모드를 사용한다. 후에 이 function 실행이 종료되면 strict mode도 종료된다.

alert("STRICT MODE");

}

아래는 브라우져들의 Strict Mode를 지원 현황이다.  초록색으로 표시된 버젼들이 모두 지원하는 버젼들이니, 거의 대부분의 브라우져들이 지원한다고 보면 된다. 클릭하면 크게 볼 수 있다

출처: http://caniuse.com/#search=strict%20mode


Strict Mode는 거의 대부분의 브라우져들이 지원하니 코드 작성시에 strict mode 를 사용해서 안전한 자바스크립트 코드를 작성하자.

댓글 없음 :

댓글 쓰기