코어 자바스크립트를 읽고

image



이 책을 읽게 된 이유

자바스크립트 서적 중에 많이 알려져 있는 책이고, 추천을 받아서 읽게 되었습니다.

모던 자바스크립트 핵심 가이드 책이 간략하게 ”호이스팅은 무엇이다”라고 정의를 설명해 주는 책이었다면 코어 자바스크립트는 원리에 대해서 설명해 주는 책이었던 것 같습니다.

예를 들면 클로저는 어떻게 실행이 종료된 컨텍스트의 데이터에 접근할 수 있는지? 같은 원리를 중요시 여기는 분이라면 재미있게 읽을 수 있는 책이라고 생각하고, 자바스크립트에 익숙하지 않다면 어려운 책이라고 생각합니다.


문제로 만들면 더 좋을듯

책을 읽으면서 같이 스터디를 하는 분에게 공유할 목적으로 만든 문제들이 있는데 몇 가지를 공유합니다. 혹시나 중복된 문제가 있을 수도 있지만 아래를 읽고 스스로 답해보시면 좋을 것 같습니다.


  1. 데이터 타입에는 어떤 게 있나요? 그리고 그것에 대해서 설명해 주세요

  1. 불변성이 뭔가요? 자바스크립트에서 불변성은 왜 중요한가요?

  1. 자바스크립트는 동적 타입 언어라고 불리는데 이유가 뭔가요?

  1. 자바스크립트는 숫자의 메모리 공간을 몇 비트 확보하나요?

  1. 기본형 타입과 참조형 타입의 변수 영역과 메모리 영역에 대해서 설명해 주세요

  1. 기본형 타입은 불변성을 지니고 참조형 타입을 가변성을 지닌다고 하셨는데 이유가 뭔가요?

  1. 자바스크립트 가비지 컬렉터에 대해서 설명해 주실 수 있나요?

  1. 자바스크립트에서 객체를 불변으로 유지하는 방법들에 대해서 설명해 주세요

  1. 얕은 복사와 깊은 복사에 대한 것과 차이점, 방법까지 설명해 주세요

  1. 스프레드 문법이나 Object.asign은 어떤 문제가 있나요?

  1. JSON 문법을 사용해서 깊은 복사를 하는 것은 어떤 문제가 있나요?

  1. undefined와 null의 차이점에 대해서 설명해 주세요.

  1. 실행 컨텍스트가 뭔지 설명해 주실 수 있나요?

  1. 실행 컨텍스트는 어떤 상황에서 생성되나요?

  1. 아래 코드는 실행 컨텍스트가 어떻게 실행되고 종료되는지 설명해 주세요.
const outer = () => {
  console.log('응애')
  const inner = () => {
    console.log('응애!')
  }
  inner()
}
outer()
  1. 실행 컨텍스트 안에는 어떤 것들이 있나요? 그리고 하는 역할이 무엇인지 설명해 주세요.

  1. VariableEnvironment와 LexicalEnvironment의 차이점에 대해서 설명해 주세요.

  1. 호이스팅 뭔지 설명해 주세요. 실행 컨텍스트와 호이 스팅이 연관성이 있나요?

  1. 함수 선언식과 함수 표현식의 차이점을 알려주세요.

  1. 익명 함수가 어떤 것인가요? 즉시 실행 함수가 뭔지 설명해 주실 수 있나요? 즉시 실행 함수의 장점은 무엇인가요?

  1. 함수 선언식에는 어떤 문제점이 있나요?

  1. 스코프에 대해서 설명해 주실 수 있나요?

  1. 스코프 체인에 대해서 설명해 주실 수 있나요? 실행 컨텍스트와 연관되게 설명해 주세요.


마치며

문제가 더 있긴 하지만 이 정도만 하고, 따로 답을 적지는 않았습니다. 책을 읽으면서 직접 답해보면 도움이 될 것이라고 생각합니다.