javascript의 이상한 동작: 기본 유형 및 참조 유형

4089 단어 beginnersjavascript
최근에 기본 유형과 참조 유형의 차이점을 배웠습니다.
이 주제에 대한 블로그 게시물을 작성하는 것이 좋을 것이라고 생각했습니다.

코드 스니펫부터 시작하겠습니다.



let a = 1;
let b = a;

console.log(b); // 1

a = 2;

console.log(b); // 1

괜찮아 보이는데 개체에 대해 같은 작업을 수행해 보겠습니다.

let a = {
  someText: 'Hello',
};

let b = a;

console.log(b); // { someText: "Hello" }

a.someText = 'Hi';

console.log(b); // { someText: "Hi" }

이것은 예상치 못한 결과를 낳았습니까?
이 게시물이 끝날 때까지 왜 이런 일이 발생하는지 이해하게 될 것입니다. 자세히 살펴보겠습니다.

기본 및 참조 유형이란 무엇입니까?



Javascript에는 6가지 기본 유형이 있습니다.
  • 문자열
  • 번호
  • 부울
  • 정의되지 않은
  • 기호(ES6)

  • 및 3가지 참조 유형
  • 객체
  • 배열
  • 기능

  • 기본 유형



    고정 크기 메모리에 저장된 기본 유형,
    메모리에 저장된 "a"의 정확한 값,
    여기에 예제가 더 도움이 될 것이라고 생각합니다.

    우리는 변수 "a"를 만들었고 다음과 같이 메모리에 배치했습니다.



    그런 다음 변수 "a"의 메모리 값을 변수 "b"에 복사했습니다.



    괜찮은 것 같습니다. 참조 유형이 어떻게 되는지 살펴보겠습니다.

    참조 유형



    참조 유형은 기본 유형에 비해 더 복잡하고 더 많은 공간을 차지합니다.
    고정 메모리에 저장할 수 없으므로 메모리의 임의 위치에 저장됩니다.
    그것의 다이어그램을 보자



    메모리에 저장된 값은 실제 값 자체가 아니라 실제 값에 대한 참조입니다.
    변수 "a"를 "b"로 복사할 때 메모리 값(실제 개체 참조)을 복사합니다. 그래서 참조 값이라고 합니다.
    변수 "a"를 복사할 때 실제 값을 복사하지 않고 실제 값에 대한 참조를 복사합니다.



    그렇기 때문에 "a"의 속성을 변경하면 "b"도 변경됩니다.

    원천



  • https://github.com/leonardomso/33-js-concepts
  • 섹션 3. 값 유형 및 참조 유형


  • 읽어 주셔서 감사합니다



    질문이 있으시면 아래에 자유롭게 질문하십시오.

    좋은 웹페이지 즐겨찾기