inflearn logo
강의

講義

知識共有

コアJavaScript

Primitive Type 메모리 관련 질문입니다!

348

loseel

投稿した質問数 1

0

안녕하세요! 강의를 보던 중에 헷갈리는 부분이 있어서 질문드립니다.

기본형은 만들어진 데이터를 계속 재사용한다고 설명해주셨는데
그럼 5003번 주소를 참조하고 있을 경우에 증감연산자(++, --)를 수행하면
5003번 주소에 있는 값 자체를 바꾸는 것인가요, 새로운 값을 저장해서 그 메모리 주소를 참조해주는 것인가요?
전자라면 그렇게 되면 같은 값을 바라보고 있는 변수들은 다 값이 변경되는건지도 궁금합니다..!

좋은 강의 제공해주셔서 감사합니다!

javascript

回答 4

2

jaenam

우선 값을 증가시킨 다음 해당 값이 저장된 메모리가 있는지를 먼저 찾습니다.

있다면 해당 메모리 주소를 참조하게 되고,

없다면 새로운 값을 저장해서 그 메모리 주소를 참조하게 됩니다.

즉 한 번 메모리에 저장된 기본형 데이터는 사라지지 않는 한은 영원히 변하지 않습니다.

0

jaenam

완전히 잘못 이해하셨습니다.

var a = 10;
var b = 10;
var c = a;

에서 변수를 위한 공간은 3개이고, 값을 위한 공간은 10 하나뿐입니다.

a = 20;
c = 30;

이제 값을 위한 공간은 10, 20, 30 총 세개가 되었습니다.

10, 20, 30은 "기본형 데이터"입니다. 기본형 데이터는 덮어씌울 수 없습니다.

강의를 다시 한 번 찬찬히 들어보시길 바래요.

0

hayeonsan1438

안녕하세요! 답변을 읽다가 궁금한 게 생겨서 글을 적습니다.

우선 값을 증가시킨 다음 해당 값이 저장된 메모리가 있는지를 먼저 찾습니다.

즉 한 번 메모리에 저장된 기본형 데이터는 사라지지 않는 한은 영원히 변하지 않습니다.

라고 답변해주셨는데요.

아래와 같은 코드를 작성하면 메모리 상에는 어떻게 저장되는지 궁금해요!

var a = 10;

var b = 10;

var c = a;

제가 강의를 듣고 이해한 바로는,

변수를 위한 공간은  a, b, c 총 세개 확보되고

값을 위한 공간은 10, 10 두개일 거 같은데 맞나요?

여기서 다시

a = 20;

c = 30;

이라 할당하면

a가 가리킬 값 20이 추가로 저장되고,  

c변수가 바라보던 10은 30으로 덮어씌워지는 것이 맞나요?

강의를 통해 많이 배우고 있어요! 항상 감사합니다!ㅎㅎ

0

loseel

아 이제 확실히 이해가 됐네요 ㅎㅎ 답변 감사합니다!

인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유

0

59

1

setTimeout 에서 this

0

80

1

2강부터 영상이 나오지 않습니다.

0

174

1

자바스크립트 주석에 이상한 점이 있어서 문의드립니다.

0

218

2

return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.

1

259

1

클래스 static 멤버

1

252

1

실행컨텍스트와 스택프레임

2

566

1

프로토타입으로 상속할때 브릿지 사용 이유

0

320

1

호이스팅 관련 질문

1

335

1

책 66p. 예제 3-2 질문입니다.

0

356

1

강의 내용 10:58 캡슐화 질문입니다.

1

397

1

강의 내용 5:10 질문입니다.

1

422

2

전역 공간에서의 this

0

426

2

18:31 addEventListener의 this

1

479

1

outerEnvironmentReference 질문

1

372

1

실행 컨텍스트와 클로저에 대해 질문드립니다.

1

448

1

Object.prototype.constructor의 [[prototype]] ?

1

658

1

함수를 값으로 할당할 때

2

457

1

15:54 'ddd' 사라지는 오류?

4

375

1

프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.

1

404

1

기본형/가변형 질문입니당

0

331

0

선생님 그러면 섹션 0만 봐도 무방한가요!?

0

333

1

Hoisting과 environmentRecord에 관한 질문입니다.

1

289

1

안녕하세요, 데이터 변경 질문입니다.

0

324

1