모던자바스크립트 스터디 8일차이다.
19장 프로토타입
20장 strict mode
오늘은 위 단원들을 공부하고 모르는것을 정리했다.
# 궁금증1
strict mode는 자바스크립트 언어의 문법을 더 엄격히 지원하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진 최적화 작업에 문제를 일으킬 수 있는 것을 방지하기 때문에 쓰는 것이 좋다고 한다.
그럼 strict mode를 안쓰는 것이 좋은 상황은 언제일까?
# 답변
- 엄격 모드를 부분적으로만 지원하거나 전혀 지원하지 않는(예: Internet Explorer 버전 10 이하 등) 수많은 브라우저 버전이 여전히 사용되고 있으므로 오류를 일으킬 수 있음
- 향후 ECMAScript의 버전에서 정의가 바뀔 가능성이 있는 일부 구문
- 엄격 모드 코드는 때때로 엄격 모드가 아닌 동일한 코드보다 빠르게 실행되도록 만들어질 수 있어서 예상치 못한 문제 발생 가능
# 궁금증2
왜 class를 함수로 부를 수 있는 것일까?
(모던자바스크립트 259p 19장 프로토타입 챕터에 나와있음)
# 답변
class는 특별한 함수라고 한다.
함수가 함수식과 함수 선언을 정의할 수 있는 것처럼 클래스는 클래스 표현 또는 클래스 선언의 두 가지 방식으로 정의될 수 있다.
클래스 선언은 함수 선언과 달리 let 또는 const와 동일한 시간적 데드존 제한을 가지지만, 호이스팅은 존재하지 않는 것처럼 행동한다.
즉, 다시 말하자면
class는 함수에서 특별한 기능을 가진 함수일뿐이다.
모든것이 객체인 자바스크립트에서 함수와 class의 차이는 별로 없다.
# 참고
When to NOT use "strict mode" in javascript?
https://stackoverflow.com/questions/44587711/when-to-not-use-strict-mode-in-javascript
Is a class a function?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes
'JaveScript > JaveScript' 카테고리의 다른 글
모던자바스크립트 23, 24장 스터디 (0) | 2023.11.24 |
---|---|
모던자바스크립트 21, 22장 스터디 (2) | 2023.11.23 |
모던자바스크립트 17, 18장 스터디 (0) | 2023.11.21 |
모던자바스크립트 15, 16장 스터디 (0) | 2023.11.20 |
모던자바스크립트 13, 14장 스터디 (0) | 2023.11.19 |