2023/03/23 3

속도보다 꾸준함

자바스크립트 딥다이브 책을 정독하고 있다. 200페이지까지 편의점에서 다섯번은 넘게 반복해서 읽어봤다. 하지만 이번주에 포스팅을 약 50페이지밖에 못하였다. 모르는것들이 너무 많이 발견되고 이해하는데 어렵기 때문이다. 시작은 좀 안일했다. 나는 자바스크립트로 웹사이트를 하나 만들었고 배포까지 했다. nodejs와 vuejs를 사용했기에 자바스크립트를 심화해서 배우는 지금 현상황이 그리 부담되지 않을것이라고 생각했다. 하지만 단순히 시작하면서 메모리라는 컴퓨터 사이언스 부분에서부터 세세하게 살펴보고 이해하는데 이해가 쉽게되지 않더라. 모든 배움이라는 과정이 어떤가에 따라서 사람의 수준차이는 아주 크게 난다고 본다. 예를들어 나는 어떤 AOS 게임을 즐겨한다. (롤 아님) 흔히들 게임을 수백 수천판을 하지만..

personal/ponderings 2023.03.23

값(value), 리터럴(literal), 표현식(expression), 문(statement)

# 리터럴(literal) 리터럴은 사람이 알아보는 기호로 적은 표기법을 말한다. 이전 '메모리에 저장되는 기본구조' 포스팅에서 컴퓨터는 데이터를 2진법으로 저장한다고 했었다. 메모리에 저장되는 기본 구조. # 시작하면서 2진법에대해서 되돌아보자. 중학생때 배웠던 2진법을 기억하고 있을것이다. 즉 0,1로 숫자를 표현하는 방법인데 예를들어 0은 10진법 수로 0이다. 1은 10진법수로 1, 10은 10진법 수로 2 jacobowl.tistory.com 숫자로 예를 들어보겠다. 사람은 숫자를 보통 10진법으로 표기한다. 하지만 컴퓨터는 2진법으로 알아듣는다. 즉 우리가 코드로 적는 2라는 수는 2진법 수로 10이고, 3이라는 수는 11이다. 때문에 우리가 코드에 2라는 수를 적으면 자바스크립트 엔진이 이를..

변수 호이스팅, 그리고 초기화 initialize, Temporal Dead Zone

초기화는 변수선언시에 최초로 undefined가 할당이 되는것을 말한다. 먼저 그림으로 살펴보면, let value = 'hello world'; 라는 코드가 실행되면 먼저 식별자 value가 가르키는 메모리주소1이 생성되고 이 주소가 가르키는 메모리공간에는 undefined가 할당된다. 그 후, 이 식별자 value는 메모리주소2를 가르키게되고 이 메모리주소 2가 가르키는 메모리공간에는 'hello world'라는 데이터가 재할당된다. # 먼저 선언하지 않은 변수를 참조해보자. console.log(babo); ReferenceError이 발생된다. 내용은 변수 babo가 정의되지 않았다라는 것이다. # 선언보다 참조를 먼저 하는 경우 var (호이스팅) console.log(babo); var bab..