원시 타입과 참조 타입

자바스크립트에서 참조 타입은 객체(object), 배열(array), 함수(function) 이고
원시 타입은 숫자(number), 문자(string), 논리형(boolean), null, undefined 이다.

원시 타입은 변수에 해당하는 값이 그대로 저장된다.

let a = 'a'
let b = a

console.log (b) // 'a'
console.log (a) // 'a'
console.log (a === b) // true
let a = 'a'
let b = a

b = 'b'

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

원시 타입은 값 자체를 그대로 저장하기 때문에 ba라고 선언하고 b의 값을 변경하면 a는 변경되지 않고 b의 값만 변경된다.

참조 타입은 객체 값 자체를 저장하지 않고 해당 객체가 가지고 있는 참조 값을 저장한다.

let a = {a:'a'}
let b = a



console.log (b.a) // 'a'
console.log (a.a) // 'a'
console.log (a.a === b.a) //true
let a = {a:'a'}
let b = a

b.a = 'b'



console.log (b.a) // 'b'
console.log (a.a) // 'b'
console.log (a.a === b.a) //true

값 자체를 저장하는 것이 아니라 참조(객체를 가르키는 참조값 혹은 메모리 주소) 값을 저장하고 있기 때문에 ba라고 선언한 후 b.a 값을 변경하면 a.a 의 값도 함께 변경되는 것을 확인할 수 있다.

좋은 웹페이지 즐겨찾기