항해99 12기 - 230120 TIL

지윤·2023년 1월 20일
0

항해99

목록 보기
10/40

오늘 한 일

오늘은 데이터 타입과 실행 컨텍스트에 대해 공부했다. 코어자바스크립트 책을 읽으며 공부했는데, 코드로 칠땐 뭔가 이해될 듯 했는데 글로 읽으면 전혀...^^.. 어렵다! 그래도 하나하나 정리해가면서 머리에 넣고 있다. 회독 수를 좀 늘리고, 검색도 많이 해봐야겠다. 그리고 오늘 강사님이 주신 질문들 다 답해봐야지..! 아직 다 채우지 못했다.. 너무 어려워..ㅠ

01. 데이터타입, 실행컨텍스트 생각해볼 것들

데이터 타입

  1. 다른 언어에서는 어떻게 데이터 타입을 정의 할까요?
    • 변수선언시 int, char, float, String 등으로 변수타입을 지정해준다.
  2. 다른 언어들처럼 데이터 타입을 다룬다면 장단점은 무엇이 있을까요?
    • 데이터 타입별로 할당할 메모리 영역을 나누어 놓기때문에, 한정된 메모리 공간을 효율적으로 사용할 수 있다. 컴파일 시점에 타입 체크(선언한 데이터 타입에 맞는 값을 할당 했는지 검사)를 수행하고 만약 타입 체크를 통과하지 못했다면 에러를 발생시키고 프로그램의 실행 자체를 막는다. 이를 통해 타입의 일관성을 강제함으로써 안정적인 코드의 구현을 통해 런타임에 발생하는 에러를 줄인다. 하지만 미리 선언한 데이터 타입의 값만 할당할 수 있기때문에 하나하나 형변환을 해주어야한다.
  3. 기본형 데이터와 참조형 데이터를 굳이 왜 구분해서 다룰까요? 혹시 하나의 방식으로 다 다룰수는 없을까요?
  4. 왜 불변 객체를 이용해야 할까요? 어떤 실수가 있을 수 있을까요?
    • 객체는 변경가능한 값이기 때문에 만약 객체를 복사하고, 복사본에서 객체의 프로퍼티를 바꾸면 원본객체의 프로퍼티도 바뀐다. 그래서 불변 객체로 만들어 값의 변경을 방지해야한다.
  5. 왜 자바스크립트에는 undefined와 null이 있을까요?
    • 자바스크립트에서 없음을 나타내기 위한 두가지 값이다. undefined는 어떤 변수에 값이 존재하지 않을 경우를 의미하고, null은 사용자가 명시적으로 '없음'을 표현하기 위해 대입한 값이다.

실행 컨텍스트

  1. 실행 컨텍스트는 무엇일까요?
    • 실행할 코드에 제공할 환경 정보들을 모아놓은 객체
  2. 실행 컨텍스트 객체가 활성화되는 시점에 수집되는 정보는 무엇일까요? 각각 왜 수집할까요?
    • Variable Environment, Lexical Environment, ThisBinding
  3. 호이스팅은 무엇일까요?
    • 선언된 변수를 끌어올린다(변수정보를 수집)
  4. 왜 귀찮게 호이스팅같은 개념이 있을까요?
  5. 함수 선언문과 함수 표현식은 어떻게 다를까요?
    • 함수선언문은 function 정의부만 존재하고 별도의 할당 명령이 없는 것, 함수표현식은 별도의 변수에 할당 해준 것.
    • 함수 선언문은 전체가 호이스팅되고, 함수 표현식은 변수 선언부만 호이스팅 된다.
  6. 스코프는 무엇일까요?
    • 식별자(변수명)에 대한 유효범위
  7. 스코프는 왜 중요할까요?

02. 데이터타입, 실행컨텍스트 KeyWord

데이터 타입

기본형, 참조형, 불변성, 메모리 주소, 식별자, 변수, 가변값, 데이터 영역, 변수 영역, 불변 객체, 얕은 복사, 깊은 복사, undefined, null

실행 컨텍스트

실행 컨텍스트, this, 환경 정보, 스택, 큐, 전역 컨텍스트, 콜스택, Variable Environment, Lexical Environment, 호이스팅, 함수 선언문, 함수 표현식, 스코프, 스코프체인

03.데이터타입, 실행컨텍스트 Questions

데이터 타입

  1. 타입을 지정하는 언어는 어떠한 언어가 있는지 확인해보고 해당 언어들과 자바스크립트의 방식의 장단점을 조사해주세요, 가능하다면 실제 케이스를 찾아보고 대답해주세요
  2. 변수와 식별자는 어떻게 다를까요?
    • 변수는 '데이터가 담길 수 있는 공간 또는 그릇'이고, 식별자는 변수가 되는 데이터를 식별하는 데 사용하는 이름을 말한다.
  3. 기본형과 참조형은 자바스크립트에서 어떻게 다르고 어떻게 구현되어 있나요?
  4. 불변 객체에 대해서 알게된 만큼 작성해주세요
  5. 얕은 복사와 깊은 복사는 어떠한 차이점이 있으며, 그렇다면 각각의 복사는 어떠한 장단점이 있을까요?

실행 컨텍스트

  1. 우리가 실행 컨텍스트를 제대로 이해하지 못한다면 어떤 문제가 일어날까요?
  2. 우리가 스코프를 제대로 이해하지 못한다면 어떤 문제가 일어날까요?
profile
방금 태어난 개발자

0개의 댓글