TIL 17 | JavaScript 값 복사/값 참조
11694 단어 WeCodeJavaScript위코드JavaScript
값 복사(Pass by value)
불변(immutable) 데이터 경우 그 값이 복사 된다. 변수에 할당된 값이 변경되었을 때, 다른 변수에 담긴 값이 변경되지 않았단 것은 값이 복사 되었음을 의미한다.
const repeating_count = 3;
const display_headline_content = "값 복사 vs 값 참조";
const is_toggle_menu = false;
// a에 repeating_count를 할당, repeating_count 값은 변경되지 않는다.
let a = null;
a = repeating_count;
a += 6;
console.log(`a : ${a}, repeating_count : ${repeating_count}`);
// replace()- 문자열 변경 메소드
let b = display_headline_content;
b = b.replace("복사", "copy");
console.log( `b : ${b}, display_headline_content : ${display_headline_content} `);
let d = is_toggle_menu;
d = !d;
console.log(`d : ${d}, is_toggle_menu : ${is_toggle_menu}`);
값 참조(Pass by reference)
가변(mutable) 데이터의 경우 그 값이 참조된다. 변수에 참조된 값이 변경되었을 때, 다른 변수에 담긴 값이 변경된다면 값이 참조되었음을 의미한다.
let my_family = {
size: 4,
moto: "정직하게 살자",
members: ["아버지", "어머니", "나", "동생"],
getMembers: function () {
return this.members;
},
addMembers: function (new_member) {
this.members.push(new_member);
}
};
let home_tasks = ["청소기 돌리기", "침구류 정리", "화장실 청소", "설거지", "분리수거"];
// j에 my_family를 할당 했기 때문에 j 또한 my_family를 객체를 가리킨다.
let j = my_family;
j.size = 6;
j.members = ["나", "아버지", "어머니", "고양이"];
let p = home_tasks;
p.pop();
// unshift: 배열 앞에 데이터 추가
home_tasks.unshift("마당 쓸기");
// for문 이용한 배열 복사
var name = ["영희", "철수", "기철", "난희", "숙희"];
for (let my_friends = [], i = 0; l = name.length, i < l; ++i) {
my_friends[i] = name[i];
}
// 참조형 데이터 복사
let y = {};
for (var prop in my_family) {
console.log(my_family[prop]); // prop - 속성 값
y[prop] = my_family[prop];
}
Author And Source
이 문제에 관하여(TIL 17 | JavaScript 값 복사/값 참조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@vi2920va/TIL-16-JavaScript-값-복사값-참조저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)