TIL 221130

이정익·2022년 11월 30일
0

TIL

목록 보기
23/27
post-custom-banner

길을 잃었다

깊이있는 공부가 중요한것인가 빠르게 개념만 훑고 넘어간 다음에 나중에 천천히 이해하는게 중요한것인가 라는 고민을 최근에 자주하기 시작했다.
원래는 빠르고 넓고 얕게 이해하는게 목표였는데, 최근 그 한계지점에 닿은 듯한 느낌이 들었다.
프론트엔드 공부를 하다보니 새로운 라이브러리, 새로운 프레임워크 모두 다 결국 JS를 기반으로 사용하게 되어있다.
결국엔 JS의 깊이가 중요하다는 생각에 도달했고, 기존에 안다고 착각했던 것들을 다시 정리하고 갈 타이밍이라는 생각을 했다.
어찌되었든, 결론은 열심히 하자 그거밖에 떠오르지 않는다.
오늘 코피 났으니 열심히 하고 있는걸지도?

어제 대충 정리했던 JS에서 변수의 메모리 할당

JS에서 원시형의 메모리 할당은 다음 과정을 거친다.

let str1 = "string"
let str2 = str1

str1 = "string2"

console.log(str1,str2) // string2 string
  • 변수 str1에 대한 메모리 할당
  • 데이터 "string"에 대한 메모리 할당
  • str1"string" 메모리를 참조
  • 변수 str2에 대한 메모리 할당
  • str2str1와 같은 "string" 메모리를 참조
  • 새로운 데이터 "string2"에 대한 메모리 할당
  • str1"string"에 대한 참조를 멈추고, "string2"에대한 메모리를 참조
  • str2는 여전히 "string"에대한 메모리를 참조

하지만 Object형의 메모리 할당은 조금 다르다

let arr1 = [0,1,2,3,4]
let arr2 = arr1

arr1[0] = 34

console.log(arr1, arr2) // [34,1,2,3,4] [34,1,2,3,4]
  • 변수 arr1에 대한 메모리 할당
  • 인덱스 arr[0],arr[1] ... arr[4]에 대한 메모리 할당
  • 변수 arr1이 인덱스 arr[0]~arr[4]까지의 메모리를 참조
  • 데이터 0,1, ... 4에 대한 메모리 할당
  • arr1[0]이 데이터 0에 대한 메모리 참조 ... arr[4]가 데이터 4에 대한 메모리 참조
  • 변수 arr2에 대한 메모리 할당
  • 변수 arr2arr1과 같은 인덱스 arr[0]~arr[4]까지의 메모리를 참조
  • 데이터 34에 대한 메모리 할당
  • arr[0]이 데이터 0에대한 참조를 그만하고, 데이터 34의 메모리를 참조
  • arr2arr[0]을 참조하고 있으므로, arr1 === arr2

내일 할 것

  • 실행 컨텍스트와 환경변수
  • this
  • 클로저
profile
주니어 프론트엔드 엔지니어로 한걸음 나아가는 중입니다.
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 12월 1일

사실 답은없는것같습니다
두가지 학습방법 모두 필요하기때문이지요 ㅠㅠ
빠르고 넓고 얇게 이해하되, "자주 사용할수밖에 없는 것"들은 깊게 이해하시는 방식으로 가시는게 좋겠습니다
이런것들을 구분하는건 결국 프로젝트를 하면서 필요한것들을 찾아보면서 나뉘게 되는것 같고, 구현하면서 더 깊게 이해하게 되는것 같아요
모쪼록 건강도 유의하시면서 화이팅입니다!

답글 달기