라벨이 엄격 모드인 게시물 표시

[JavaScript] use strict (엄격 모드)

이미지
'use strict'는  javascript의 초기 설계에서 발생한 허점이나 비일관성 때문에 생길 수 있는 잠재적인 오류를 방지하고, 코드를 보다 안전하고 예측 가능하게 작성하도록 돕는 기능이다. 자바스크립트는 기존의 기능을 유지하면서 계속해서 새로운 기능들을 추가하며 발전되어왔다. 기존의 코드를 수정하지 않고 기능을 추가한 덕분에 기존에 작성한 코드는 호환성과 관련되어 문제가 발생하지 않았다.  하지만 자바스크립트 개발 초기에 발생된 실수나 불완전한 결정이 수정되지 않고 계속해서 유지되어 발전된다는점이 문제였다. 이런 방식으로 자바스크립트는 ECMAScript5(ES5)가 등장하기 전까지 기능만 추가되며 계속 발전되어왔다. 그런데 ES5부터 새로운 기능을 추가 뿐만아니라 기존 기능 중 일부를 수정하였다. 이전과 달리 기존 기능을 수정하였기 때문에 코드의 하위 호환성 문제가 발생할 가능성이 생기게 되었다.  그래서 이런 호환성 문제를 해결하기위해 수정된 기능들이 'use strict'라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때만 적용되도록 개발되었다. 'use strict'는 단순한 문자열처럼 생겼다. 하지만 이 특별한 지시자가 스크립트 최상단에 오면 스크립트 전체가 “모던한” 방식으로 동작하게 된다. 'use strict'는 스크립트 최상단에 작성되어야하며 그렇지 않으면 엄격 모드가 활성화되지 않을 수도 있다. 'use strict' 는 스크립트 최상단이 아닌 함수 본문 맨 앞에 올 수도 있다 . 이렇게 작성하면 오직 해당 함수에만 엄격 모드가 적용된다 . 자바스크립트는 flexible한 언어이다. flexible한것은 프로그래밍에있어서 많은 문제점을 발생시킬 수 있다.  자바스크립트에서는 선언되지 않은 변수에 값을 할당한다던지 기존에 존재하는 프로토타입을 변경한다던지와 같은 다른 언어에서는 볼 수 없는 유연함이 존재한다...