JS. 배열의 참조값과 Const

MJ·2023년 4월 11일
0

Java Script

목록 보기
44/57
post-thumbnail

배열의 참조값

  • 요소가 같다고 해서, 배열의 값 또한 같지는 않습니다.

  • 예를 들어, 동일한 요소를 가진 변수는 동등,일치 연산자를 통해서 비교해보면 true
    나올 수 있지만, 배열은 요소가 같다고 해서 동등,일치 하지 않습니다.

  • 배열이 요소를 만들 때는, 메모리의 한 공간을 할당해서 해당 공간에 요소를 저장하고
    저장한 공간의 참조값을 반환합니다. 이로 인해 요소가 같더라도 배열이 참조하는 메모리
    주소가 다르기에 같지 않다고 나옵니다.
    ( 추후 객체 포스팅에서도 나올 예정 )


1.1 참조값 비교

let num1 = 12;
let num2 = 12;

console.log(num === num2);	// true

let arr1 = [12,24];
let arr2 = [12,24];

console.log(arr1 === arr2);	// false
/*
요소는 같더라도 메모리상을 참조하는 주소값이 서로 다르기에 같지 않습니다.
*/

1.2 일치하는 참조값

let arr1 = [12,24];
let arr2 = arr1

console.log(arr1 === arr2);


arr1.push('same?');

console.log(arr2);	// 12,24,'same?'
/*
arr2 배열은 arr1배열이 참조하는 메모리 공간을 공유하기에
arr1 배열이 요소를 업데이트하면, arr2 배열도 업데이트한 요소를 확인할 수 있습니다.
*/



배열에서의 const

  • 기본적으로 변수를 사용할 때, const를 사용하면 변수의 값을 변경할 수 없습니다.
    대신 객체나 배열에서는 const 상수를 사용해도 배열안의 요소는 변경할 수 있습니다.
    ( 대신, 요소를 참조하는 배열명은 수정할 수 없다 )

2.1 상수 배열

const nums = [1,2,3];
nums.push(4);

console.log(nums);	// 1,2,3,4

nums = [1,2,3,4,5];	// error, 새로운 참조를 하면 오류 발생 

배열을 사용할때는 변수보다는 상수가 안전합니다.
배열안에 요소를 얼마든지 수정해도, 참조값은 그대로이기에 다른 배열과 착각할 경우가 없다.

profile
프론트엔드 개발자가 되기 위한 학습 과정을 정리하는 블로그

0개의 댓글