M N
458
2021-06-09 09:50:47
2
83

자바스크립트 변수 질문


이럴 경우 어떻게 해결해야하는지 궁금합니다


예를 들어 var A = "a";

그리고 var B = A; 라고 했을 때 변수 B의 값이 A의 값인 "a"로 변경이 되는데

값이 같아지는것뿐만아니라 변수 B를 A로 인식하게 할수있는 방법은 없나요?

0
  • 답변 2

  • Ananya
    946
    2021-06-09 13:58:56 작성 2021-06-09 14:54:20 수정됨

    자바스크립트에서 string은 primitive type 입니다. 또한 primitive type은 변경 불가능하므로, 내용을 변경하면 새 주소로 객체가 생기고 기존 것은 가비지 콜렉터가 정리합니다. var a = 'asdf', var b = a  하시면 b에도 a와 같이 asdf 라는 값이 들어가겠지만, 이건 값이 넘겨지는 것이지 주소가 공유되는 것은 아닙니다.

    javascript 는 Object type 에 대해서는 주소로 넘겨주는 것이 가능합니다.

    예를 들어

    var a = {'a': 'a', 'b': 'b'};
    var b = a;
    a.a = 'aa';
    console.log(b);

    이렇게 하신다면 b.a 의 값도 aa로 변경되어 있음을 확인하실 수 있습니다.

    예시에 적으신 대로 string 끼리 주소를 두 변수가 공유하는 것은 불가능할 겁니다.

  • M N
    458
    2021-06-09 14:30:24

    @Ananya

    감사합니다 궁금하던 부분이 해결됐네요

  • 로그인을 하시면 답변을 등록할 수 있습니다.