home강의 홈으로
Section 2. 자료형과 연산자
Lesson 10. 원시 타입 vs 참조 타입

I. 값 복사 결과 비교

1. 원시 타입

👉 MDN 문서 보기

  • 에 의한 복사 copy by value
let number1 = 1; let string1 = 'ABC'; let bool1 = true; let number2 = number1; let string2 = string1; let bool2 = bool1; number2 = 2; string2 = '가나다'; bool2 = false; console.log('~1:', number1, string1, bool1); console.log('~2:', number2, string2, bool2);

img



2. 참조 타입

  • 참조에 의한 복사 copy by reference
const obj1 = { num: 1, str: 'ABC', bool: true }; const obj2 = obj1; // obj2 = {}; // ⚠️ 오류 console.log('obj1:', obj1); console.log('obj2:', obj2); // ⭐️ const임에도 내부 값은 변경 가능함 주목 // 내부 변경 방지는 이후 배울 Object.freeze 함수로 obj2.num = 2; obj2.str = '가나다'; obj2.bool = false; console.log('obj1:', obj1); console.log('obj2:', obj2);


const array1 = [1, 'ABC', true]; const array2 = array1; // array2 = []; // ⚠️ 오류 console.log('array1:', array1); console.log('array2:', array2); // ⭐️ const임에도 내부 값은 변경 가능함 주목 array2[0] = 3; array2[1] = 'def'; array2[2] = false; console.log('array1:', array1); console.log('array2:', array2);

img





II. 메모리 상세

1. 원시 타입

let number1 = 1; number2 = number1; number2 = 2; console.log(number1, number2);

img img img



2. 참조 타입

a. 객체

const obj1 = { num: 1, str: 'ABC', bool: true }; const obj2 = obj1; obj2.num = 2; console.log(obj1, obj2);

img



b. 배열

const array1 = [1, 'ABC', true]; const array2 = array1; array2[1] = '가나다'; console.log(array1, array2);

img

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] 제대로 파는 자바스크립트 (무료 파트) 2-10

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?