묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
객체 타입의 얕은 복사와 깊은 복사에 대해 질문 있습니다
안녕하세요~ 2.5) 원시타입 vs 객체타입 강의의 8분 6초 쯤에 객체의 얕은 복사와 깊은 복사에 대해 설명해주시는 부분이 있는데요.중첩객체에서는 spread 연산자를 사용해서 복사를 해도 1 depth까지는 복사가 되는데, 2 depth 이상 부터는 복사되지 않는 걸로 알고 있습니다.그래서 spread 연산자를 사용한 복사를 얕은복사,JSON.stringify() 등을 이용해서 하위 중첩된 객체들까지 복사하는 것을 깊은 복사라고 하는 걸로 알고 있는데혹시 제가 잘못 알고 있는건지 궁금해서 질문남깁니다!
-
해결됨웹 게임을 만들며 배우는 자바스크립트
안녕하세요 깊은 복사 부분에서 질문 있습니다.
안녕하세요. 강의 계속 듣다가 질문생겨서 여쭤봅니다. var arr1 = [1, 2, 3, [1, 2, 3]]; var arr2 = arr1.slice(); // 1번 arr2[3] = [2, 3, 4]; console.log(arr1); console.log(arr2); // 2번 arr2[3][1] = 6; console.log(arr1); console.log(arr2); 2번을 주석처리하고 실행하면 [ 1, 2, 3, [ 1, 2, 3 ] ] [ 1, 2, 3, [ 2, 3, 4 ] ] 1번을 주석처리하고 실행하면 [ 1, 2, 3, [ 1, 6, 3 ] ] [ 1, 2, 3, [ 1, 6, 3 ] ] 둘다 주석처리 안하면 [ 1, 2, 3, [ 1, 2, 3 ] ] [ 1, 2, 3, [ 2, 3, 4 ] ] [ 1, 2, 3, [ 1, 2, 3 ] ] [ 1, 2, 3, [ 2, 6, 4 ] ] 이렇게 나옵니다. 강의에서 1단계 값만 복사가 되고 배열 속 배열은 참조만 된다고 말씀하신걸로 알고 있습니다. 그런데 두 경우의 결과가 왜 다르게 나오는지 잘 모르겠습니다.