급한 것, 아픈 것들이 많이 지나가서 다시 시작하는 모던 자바스크립트~_~ 넘나 좋다
엄격 모드(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을 틀어놓고 공부를 하면 너무 힐링된다....
나는 좀 이상한 것 같다....
이게 힐링이라니
하지만 힐링의 방식은 여러가ㅈ.......
지만 졸리다.
하지만 일이 없을 때 이렇게 새벽 공부를 할 수 있는 법
일이 많으면 피곤해서 저녁에 공부하고 일찍 자야된다,,,🥲,,,