JavaScript의 프리미티브 및 참조 유형 이해

여러분 👋🏻,
이 기사에서는 JavaScript의 기본 및 참조 유형 이해라는 주제를 다루겠습니다.

이 기사는 https://the-nerdy-dev.com/ 에 처음 게시되었습니다.
웹 개발에 대한 더 흥미로운 기사와 튜토리얼을 보려면 웹사이트를 확인하십시오.



기본 값은 변수가 액세스하는 위치에 직접 저장됩니다. 그리고 Reference 값은 힙에 저장되는 객체입니다. 변수 위치에 저장된 참조 값은 객체가 저장된 메모리의 위치에 대한 포인터입니다. 이것은 내가 잠시 후에 보여줄 것입니다. 그러니 나와 함께 있어줘

기본 기본 유형 및 참조 유형



JavaScript는 숫자, 문자열, 부울, 정의되지 않음 및 null의 5가지 기본 데이터 유형을 지원합니다.

이러한 유형은 더 복잡한 유형을 작성할 수 있는 기본 빌딩 블록이기 때문에 기본 유형이라고 합니다. 이 다섯 가지 중 숫자, 문자열, 부울만 실제로 데이터를 저장한다는 의미에서 실제 데이터 유형입니다.

Undefined 및 null은 특수한 상황에서 발생하는 유형입니다. 기본 유형은 메모리에 고정된 크기를 갖습니다. 예를 들어 숫자는 8바이트의 메모리를 차지하며 부울 값은 1비트로만 나타낼 수 있습니다.

이와는 대조적으로 참조 유형의 길이는 제한되지 않습니다. 그들은 고정 된 크기가 없습니다.

기본 형식의 경우 항상 전체 값으로 복사되는 반면 참조 유형의 경우 참조로 복사됩니다.

값을 보유하는 변수의 경우 해당 값만 비교하지만 객체와 같은 참조 유형의 경우에는 그렇지 않습니다.

다음 예를 고려하십시오.

const a= [1,2,3] 
const b = a; 
console.log(a === b); 





위의 로그는 와 b가 정확히 동일한 메모리 위치를 참조하고 있기 때문에 true를 제공합니다. 따라서 화살표에 대한 메모리가 4k와 같은 메모리 주소에 할당되었다고 가정해 보겠습니다. 따라서 메모리 주소 4k에 있는 배열 개체를 가리키는 참조입니다. 따라서 위와 같이 b에 할당하면 메모리에서 정확히 동일한 객체를 가리키는 새로운 참조가 생깁니다. 따라서 두 참조가 메모리에서 정확히 동일한 객체를 가리키기 때문에 와 b(위 로그의 경우) 사이의 엄밀한 동등 비교에 대해 true를 제공합니다.

그러나 정확히 동일한 내용으로 다른 배열을 선언하면 c

const c = [1,2,3]


다음을 수행하십시오.

console.log(a === c)




그런 다음 이 새 어레이가 5k와 같은 다른 메모리 위치에 할당되기 때문에 위의 로그는 false로 확인됩니다. 따라서 엄격한 동등 비교를 사용하여 및 c를 비교하면 참조 및 c가 각각 4k 및 5k와 같은 다른 메모리 위치를 가리키므로 거짓이 되기 때문에 거짓으로 해석됩니다.

이제 프리미티브에 대한 예를 고려하십시오. 이 경우 값을 비교하기만 하면 됩니다. 그래서 우리가 가지고있는 경우 :

const valueOne  = 3; 
const valueTwo = 3; 
const valueThree = 4; 

그런 다음 우리는 말합니다.

console.log(valueOne === valueTwo);

그런 다음 위의 로그에 대해 유형과 값이 모두 사물(비교 중인 기본 요소)에 대해 동일한지 확인합니다. 둘 다 3이고 둘 다 숫자이므로 이에 대해 참이 됩니다.

다음으로 말하면

console.log(valueOne === valueThree).


이것은 3과 4가 같지 않기 때문에 false로 해결됩니다.

그래서 이것은이 기사에 대한 것입니다. 읽어 주셔서 감사합니다.

내 기사가 마음에 든다면 Twitter에서 나를 팔로우하여 더 흥미로운 내용을 확인하세요.



⚡트위터 :

기사가 마음에 드셨다면 좋아요를 잊지 마세요. 또한 친구 및 동료와 공유하십시오.



추신 - 웹 개발을 배우려는 경우 YouTube 채널에서 무료 과정을 선별했습니다. 아래 기사를 확인하세요.


좋은 웹페이지 즐겨찾기