본문 바로가기
웹/JavaScript

[JavaScript] "use strict "

by void pattern 2020. 6. 15.

"use strict"

엄격모드라고 불리는 use strict는 문자열로 표현합니다.

사용한다면 반드시 스크립트 최상단에 위치시키거나 엄격하게 동작되어야 할 함수 최상단에 위치시킬 수 있습니다.

 

최상단에 위치해있지 않으면

동작하지 않아요.

 

 

use strict?

use strict 지시자를 쓰게 되면 스크립트 전체가 '모던'한 방식으로 동작합니다.

기존(옛날) JS는 암묵적으로 느슨한 모드(sloppy mode)로 처리했기 때문에 여러 많은 문제가 발생했습니다.

 

 

예를 들어보자.

amount = 10;

console.log(amount);

"use strict" 가 없는 스크립트에서 콘솔로그에 찍히는 값은

amount 변수 앞에 var이나 let을 쓰지 않아도 변수와 값이 생성됩니다.

 

use strict

"use strict" 를 추가하게 되면

amount is not defined 가 출력됩니다.

 

이러한 느슨한 JS에게 "use strict" 문자열을 추가하게 되면

- 기존에는 무시했던 에러들을 throwing함

- JS엔진 최적화 작업을 어렵게 만드는 실수들을 잡고 가끔은 엄격 모드 코드는 비 엄격 모드의 동일한 코드보다 더 빨리 작동됨

- ECMAScript의 차기 버전들에서 정의될 문법을 금지함

 

스크립트 strict mode 

'use strict';
var amount = 10;

 

함수 strict mode

function strict(){
	'use strict';
    return 'hello use strict';
}

 

모듈 strict mode

function strict() {
    // 모듈이기때문에 기본적으로 엄격합니다
}
export default strict;

 

 

댓글