JavaScript의 기본 값과 참조 값

이 게시물에서는 매우 일반적인 인터뷰 질문인 JavaScript의 기본 값과 참조 값을 살펴보겠습니다.

프리미티브 값이란 무엇입니까?



JS에는 숫자, 문자열, 부울, 정의되지 않음, null 및 기호의 6가지 기본 값이 있습니다.

그것들을 기본으로 생각할 수 있으므로 프리미티브라는 이름이 붙습니다. 이러한 값은 개체가 아니며 메서드가 없습니다.

기준값이란?



짧은 대답은 다음과 같습니다. 기본 값이 아닌 모든 것은 참조 값입니다. 그들은 typeof "object"입니다. 객체, 배열, 함수 등에 대해 이야기하고 있습니다.

주요 차이점



주요 차이점은 이러한 값이 후드 아래에서 작동하는 방식입니다. 특히 메모리에 값을 저장하는 방법입니다.

기본 값은 메모리에 값을 갖는 반면 참조 값은 값 자체가 아니라 메모리의 해당 위치(메모리 주소)에 대한 참조를 갖습니다.

예를 들어:

let name = 'Jesus'
let nickName = name

name = 'Juan'

console.log(name) // 'Juan'
console.log(nickName) // 'Jesus'


여기서는 기본 값만 사용하므로 모든 것이 의미가 있습니다. 오른쪽?

이제 참조 값 예를 살펴보겠습니다.

let jose = {
  type: 'Person',
  name: 'Jose'
}

let juan = jose

juan.name = 'Juan'

console.log(jose.name) // 'Juan'
console.log(juan.name) // 'Juan'


보다? 여기에서 juan 변수는 메모리에서 jose 변수와 동일한 지점을 참조합니다. 그렇기 때문에 둘 중 하나에서 name 속성을 변경하면 둘 다에서 변경하게 됩니다.

이 동작은 겉보기에 같아 보이는 두 참조 값을 비교하면 결과가 false 인 이유도 설명합니다. 예를 들어:

const fruit = {
  color: 'Yellow',
  name: 'Banana'
}

const snack = {
  color: 'Yellow',
  name: 'Banana'
}

fruit === snack // false


따라서 기본 유형은 값으로 비교되고 참조 유형은 참조로 비교됩니다.

마지막으로 기본 값은 변경할 수 없음을 기억하십시오. 따라서 프리미티브 값을 변경할 때 수행하는 작업은 메모리 내 값을 대체하는 것입니다. 참조 값으로 할 수 있는 것처럼 수정하지 않습니다.

좋은 웹페이지 즐겨찾기