새소식

Study/JavaScript

[모던 JavaScript] 코어 자바스크립트 - 자바스크립트 기본 - 3. 엄격 모드

  • -

급한 것, 아픈 것들이 많이 지나가서 다시 시작하는 모던 자바스크립트~_~ 넘나 좋다


엄격 모드(strict mode)

그동안 자바스크립트는 기존 기능의 변경 없이 새로운 기능이 추가되어

오랫동안 호환성 이슈 없이 발전해왔다.

- 기존의 코드가 망가지지 않음

- 창시자들의 실수나 불완전함이 언어 안에 박제되어 있음

 

위의 현상이 2009년까지 지속되었다.

ES5에서 드디어 새로운 기능 추가와 함께 기존 기능 일부가 변경되었다.

> 기존 기능의 변경으로 호환성 문제가 생김

>> 이를 위해 기본 모드에서는 활성화 되지 않게 설계

>>> use strict 라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 할 수 있음

리액트와 특히 next.js를 사용하다 많이 봤던 use strict!!

 

 

use strict

'use strict' ("" 쌍따옴표도 가능)는 단순한 문자열처럼 생겼다.

'use strict';

// 이렇게 최상단에 use strict를 작성하면
// 이 코드는 모던한 방식으로 실행된다.

이 use strict는 스크립트 최상단이 아닌

함수 본문의 맨 앞에 올 수도 있다.

> 이 경우엔 해당 함수만 엄격 모드로 실행

>> 보통은 전체를 엄격 모드로 한다.

 

use strict는 반드시 최상단에 있어야 한다.

이 위에 다른 코드가 있다면 엄격모드가 활성화 되지 않는다.

> 주석은 가능하다.

alert("hello world!");
// 하단에 위치한 "use strict"는 스크립트 상단에 위치하지 않으므로 무시된다.

"use strict";

// 엄격 모드가 활성화되지 않는다.

> js 엔진을 이전으로 돌리는 no use strict 같은 지시자는 없다.

strict mode가 적용되면 돌이킬 방법은 없다.

 

 

브라우저 콘솔

브라우저의 콘솔을 사용하는 경우 기본적으로는 use strict가 적용되어 있지 않다.

> 'use strict'; 입력 후 shift+enter 코드 입력

 

만약 안되는 브라우저는(지금도 있을라나..?)

(function() {
  'use strict';

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

요렇게 코드를 감싸 버리면 된다고 한다.

 

 

'use strict'를 꼭 사용해야 하나?

> 꼭 그렇진 않다.

클래스와 모듈을 사용하면 자동으로 use strict가 적용된다.

(자동으로 적용되는 다른 것들은 없나 찾아봐야겠다.)

이런 경우엔 굳이 상단에 'use strict'를 사용할 필요가 없다.

 

 

next >> 엄격 모드와 비엄격 모드에서의 차이


새벽에 asmr을 틀어놓고 공부를 하면 너무 힐링된다....

나는 좀 이상한 것 같다....

이게 힐링이라니

하지만 힐링의 방식은 여러가ㅈ.......

지만 졸리다.

하지만 일이 없을 때 이렇게 새벽 공부를 할 수 있는 법

일이 많으면 피곤해서 저녁에 공부하고 일찍 자야된다,,,🥲,,,

Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.