{} === {}는 거짓입니다... 😳무엇?? 이미지로 설명드릴게요 🖼

2312 단어 beginnersjavascript
자바스크립트에서

const obj1 = {}
const obj2 = {}
obj1 === obj2 // false


무엇 ?????



이런 반응을 보인다면 이 기사를 계속 읽으십시오.

먼저 메모리 수명 주기에 대해 설명해야 합니다.
걱정하지 마세요. 이미지로 간단한 방법을 알려드리겠습니다.

const name  = 'kaziu' // string
let isShame = true    // boolean
let age     = 101     // number 


Javascript에서 문자열, 숫자, 부울, null, 정의되지 않음, 기호는 기본 유형을 호출합니다.
자바스크립트 기본형에서 이렇게 선언하면 데이터는 스택 인 메모리(stack in memory)라는 공간에 저장된다.



반면 객체는 함수, 배열을 포함하는 참조형이다(실제로 함수는 객체 중 하나이다)

const obj1 = {}
const obj2 = {}


개체를 선언할 때 컴퓨터는 해당 데이터 형식을 해당 변수에 직접 저장하지 않습니다. 힙에 있는 부동산 저장소



보시다시피 각 객체는 서로 다른 주소를 가지고 있습니다. 그리고 obj1 === obj2 이 주소를 비교하므로 false를 반환합니다.

결론



보통 참조라고 하는데 이해하기 쉽기 때문에 주소를 사용했습니다. 서로 다른 곳에 같은 모양의 집 두 채가 있다고 상상할 수 있습니다 🏠🏠

개인적으로 저는 프론트엔드 엔지니어로서 특히 React에서 useMemo를 사용할 때 처리합니다.

좋은 웹페이지 즐겨찾기