JS (Java Script)

use strict 에 대해서

GABOJOK 2023. 8. 29. 11:34

이게 뭐임?

ES5 가 나오면서 생김

원래 자바스크립트는 기존에 기능들을 변경하지 않고, 추가만 해왔음. 그래서 기존 코드가 오류 발생하지 않았음.

ES5 가 나오면서 새로운 기능 추가 및 기능 중 일부 변경되었는데 그럼 호환성 문제가 생기게 된다. 

호환성 문제를 줄이기 위해 변경된 사항들 대부분은 ES5 기본모드에서 비활성화 상태로 이용하도록 설계되었다. 

 

이거 어떻게 씀?

활성화 하기 위해서 use strict 라는 지시자를 이용한다.

변경된 기능 사용하겠다는 말. 우린 이걸  strict mode 실행한다 고 한다. . 

 

보통 스크립트 최상단에 위치하지만, 가끔 함수 본문 맨 앞에 위치하는 경우도 있따. (그럼 해당 함수만 strict mode 로 됨.)

왠만하면 스크립트 최상단에 위치해야 한다!

 

이거 취소 가능?

use strict를 취소 하는 법은 없다. 

그럼 콘솔에서 시도해 보고 코드에 적용하는게 좋을 것 같은데 어떻게 콘솔창에서 실행해 볼 수 있을까?

 

콘솔창에 use strict 시범사용 해보는 법

'use strict' 

적용하려는 코드 입력 

 

이렇게 shift + enter 로 줄바꿈 후 적용하려는 코드 입력하면 된다.  그후 엔터 누르면 실행됨.

 

Firefox 나 Chrome 같은 유명 브라우저에서 대부분 콘솔창에 use strict 사용할 수 있도록 해준다. 

 

콘솔창에 use strict 안써지면?

그렇지만 이걸 허용하지 않는 브라우저 같은 경우에는 콘솔창에 아래처럼 함수로 감싸서 시도해 볼 수 있다. 

(function() {
  'use strict';

  // ...테스트하려는 코드...
})()

 

 

ES5 에서 변경된 기능 사용하려면 use strict 무조건 적어야 해?

클래스와 모듈을 사용해 코드를 짠다면, use strict를 생략해도 된다.