Copy by Value에 대해 질문있습니다!
257
작성한 질문수 1
안녕하세요, Copy by Value 부분이 헷갈려서 질문드립니다.
강의 7:19초에서의 그림을 보면, clone는 original 값을 복사하고 서로 다른 주솟값을 가진 것으로 이해했습니다.
이때 clone 값 추가 없는 let original = '안녕하세요'; let clone =original; 상태에서 original === clone을 하면 true가 나옵니다. 서로 다른 주솟값을 가지지만 clone이 original 값을 복사했기 때문에 true인 것으로 이해하면 될까요??
혹시 let original2 = '감사합니다'; let clone2 = '감사합니다';의 경우 original2 === clone2가 true인데 이때도 서로 다른 주솟값에 저장되지만 값은 같아서 true인 것일까요?
답변 2
0
안녕하세요!
말씀하신 부분은 copy by value가 아닙니다.
copy by value는 값만 가져와야합니다.
하지만 let a = b; 이렇게 할경우 copy by reference가 됩니다. (그렇기때문에 true 입니다)
copy by value를 하려면 완전 새로운 값을 생성하고 값만 복사해야와합니다.
예를들어 let b = {test: 'test'}; let a = {...b} 이런식입니다.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
Copy by Value에 대한 질문에 대해 답변드립니다.
복사 의미론(Copy semantics)에는 크게 ‘값에 의한 복사(Copy by Value)‘와 ‘참조에 의한 복사(Copy by Reference)‘가 있습니다. 여기서 언급하신 경우는 기본형 데이터(Primitive data type)인 문자열을 다루고 있습니다. 복잡한 객체가 아닌 기본형 데이터는 값 자체가 변수에 저장되므로, 값에 의한 복사가 일어납니다.
let original = ‘안녕하세요’; let clone = original; 이 경우, ‘clone’은 ‘original’의 값 자체를 복사하여 가지게 됩니다. 따라서 ‘original’ 과 ‘clone’ 은 같은 값을 가지게 됩니다. 이 때문에 original === clone 은 true가 됩니다. 이경우 변수들은 서로 독립적인 값을 가지고 있으나, 값이 같기 때문에 논리적으로 동일하다(true)는 결과가 나오는 것입니다.
let original2 = ‘감사합니다’; let clone2 = ‘감사합니다’; 경우에도 마찬가지로, 두 변수는 서로 다른 메모리 공간에 같은 값 ‘감사합니다’를 각각 저장하게 됩니다. 이는 값에 의한 복사로 인해, 같은 값이지만 서로 독립적으로 존재합니다. 따라서 original2 === clone2 가 true인 것은 두 변수가 동일한 값을 가지기 때문입니다.
기본형 데이터의 경우, 변수에 직접 값이 저장되기 때문에 변수 간의 비교에서 값이 같다면 true가 됩니다. 이러한 비교는 변수가 참조하는 값 자체를 비교하는 것으로, 기본형 데이터의 비교에는 항상 ‘값에 의한 복사’의 원칙이 적용됩니다.
EXPLOPER에서 파일을 삭제하는 방법을 알려주세요 ㅜㅜ
0
100
2
&& ||가 너무 햇갈려요
0
97
2
js에선 string값이 아스키코드값으로 저장되지 않나요?
0
72
2
여러줄에 주석 쓰는 방법 질문
0
119
1
출력이안되요 ㅜㅜ
0
821
3
선생님, 감사해요
0
250
2
Factory Constructor를 언제 사용하나요?
0
231
2
n개의 await를 사용하면, 이들은 promise chaining 처럼 동작하나요?
0
168
1
안유진을 얼마만큼 좋아하시는 건가요?
7
470
2
단축 평가 (short circuit evaluation) 패턴 관련 질문있습니다.
0
217
1
클래스를 써야할때와 함수를 써야할때
0
314
2
혹시 공부한 내용을 개인 블로그(티스토리 등)에 요약해서 올려도 될까요 ?
0
335
1
메모리 강의 중 메모리 활용 부분 질문드립니다.
0
274
1
Super Keyword 질문 있어요!
0
333
1
Static Keyword 질문 있어요!
0
272
1
Object.setPrototype(ray, IdolModel.prototype); 호출 후, ray.dance()가 실행되는 이유를 모르겠어요
1
494
2
선생님 저 멍청한거 맞죠?
0
745
2
sort 함수에 대해 궁금한 점이 있습니다.
0
435
1
대소관계 비교할 때 문자열과 비교할 경우
0
349
1
const 에서
0
408
1
함수 안 변수 키워드를 var를 사용하시는 이유가 궁금합니다.
0
552
1
Arrow 함수 질문있습니다.
2
363
1
scope에 대해 질문 있습니다.
0
320
1
Ts 가 목표인데 Prototype Chain 부분 정확하게 이해하고 넘어가야 할까요?
0
552
1





