데이터 타입

김듑듑·2022년 8월 29일
0

프론트엔드

목록 보기
8/24

헷갈리는 포인트

  • null, undefined
  • object, array
  • immutable, constant, 불변값과 불변객체
  • var, let

변수란 무엇인가? 왜 필요한가?

변수란 메모리 공간의 한켠이라고 생각하면 된다


보통 컴공을 나오면 배우는 그 내용이랑 똑같음

메모리 생존주기는 언어 상관없이 다 비슷함
필요할때 할당하고, 할당된 메모리를 사용(rw), 필요없으면 해제

변수는 메모리에 올라가면
변수네 집주소와 값을 따로 저장해두고
집주소 따라가서 값을 확인하는거임


가비지 콜렉션

조금 다른건 자바스크립트는
객체 생성되면 자동으로 메모리 할당하고, 필요없을때 자동으로 해제(가비지 컬렉션으로 이동시킴)한다는 거

예시
let a = 1; //집주소는 0x001
인 상황에서
a = 2; 라고 재할당한다고 치자

그럼
집주소 0x001에 있던 살림살이들은 가비지 컬렉터가 뽀려가고 메모리에서 해제된다
0x101로 a의 집주소가 바뀐다

그럼 가비지 컬렉터가 뽀려간 살림살이들은 언제 폐기처분하느냐
이건 지맘임

그래서 왜 변수가 필요하냐

메모리에 개발자가 다이렉트로 접근하고싶어서 했는데
만약 os가 쓰고 있던 또는 다른 메모리 주소로 접근하면 아주 큰일이 나는거임
그리고 자바스크립트는 개발자가 다이렉트로 메모리 접근하는걸 막아둠

결론 : 변수를 쓰는 이유 파국을 막고 메모리에 올라간 값을 안전하게 rw하려고
덤으로 코드 재사용성, 유지, 보수


변수 선언과 변수 할당

let a; //이게 변수 선언
a = 2; //이게 변수 할당

그래서 선언과 할당이 뭐가 다르냐
선언 : 메모리 공간 확보하기 위해 하는거임
할당 : 그 공간에 집어 넣는거고

그래서 실행순서도 다름
선언은 런타임 전에 실행되고 할당은 소스코드 읽으면서 실행됨


0개의 댓글