#5 Pass by value, Pass by reference

2langk·2021년 3월 21일
0
post-thumbnail

지난 시간에 자바스크립트에서 타입은 primitive type과 reference type 두 가지가 있다고 소개했다.
primitive 타입은 변수에 할당된 값을 저장하고, reference type은 변수가 저장된 메모리의 주소값을 저장한다.

1. Pass by value

primitive 타입은 값을 저장하고 값을 전달한다.

let a = 12
const b = a // a가 전달하는것은 a의 값인 12
const c = b // b가 전달하는것은 b의 값인 12

a = 13

console.log(a===b) // false

2. Pass by reference

reference 타입은 메모리 주소를 저장하고 메모리 주소를 전달한다.

const a1 = {a: '1'} 
const a2 = a1 // a1은 a1의 주소값을 전달
const a3 = a2 // a2는 a2의 주소값을 전달

const a4 = {a: '1'} // a1과 같은 값을 갖는 a4이다.

// a1 === a2 true.
// a2 === a3 true.
// a1 === a4 false. a1과 a4의 값은 같지만 결과는 false이다.

a1.a = '2' // a1의 값을 변경

console.log(a2) // {a: '2'} // a2는 a1의 주소값을 저장하고 있기 때문에 a1이 바뀌면 a2도 같이 바뀐다.
console.log(a3) // {a: '2'} // a3도 마찬가지.

이번 포스트에서는 자료형에 따라 값을 어떻게 전달하는지 알아보았다.
원시타입은 값을 저장하고 값을 전달하며, 참조타입은 주소값을 저장하고 주소값을 전달한다.

다음에는 참조타입에서 값을 전달하는 방법에 대해 소개하도록 하겠다.

0개의 댓글

관련 채용 정보