혼공단
혼자 공부하는 자바스크립트 3주차 Chapter 04
Hocube
2024. 7. 18. 15:45
반응형
[기본 미션] 비파괴적 처리와 파괴적 처리의 의미와 장단점 설명하기
자바스크립트는 자료 처리를 위해서 다양한 연산자, 함수, 메서드를 제공한다.
자료 처리 연산자, 함수, 메서드는 크게 비파괴적 처리와 파괴적 처리로 구분할 수 있다.
처리 후 원본의 상태 변화에 따라 구분한다.
1. 파괴적 처리 : 처리 후에 원본 내용이 변경 된다.
// 변수 선언
const array = ["강아지", "토끼", "고양이"]
// 배열 맨 뒷 부분에 "말" 추가
array.push("말")
4
// 원본(array) 내용이 변경되었다.
array
(4) ["강아지", "토끼", "고양이", "말"]
장점 : 메모리가 절약된다.
단점 : 원본이 사라지기 때문에 오류가 났을 때 위험할 수 있다.
과거에는 컴퓨터 메모리가 부족해 프로그래밍 언어와 라이브러리들은
최대한 메모리를 절약해서 사용하는 방식으로 설계가 되었다.
배열처럼 크기가 어느정도인지 모르는 대상의 원본과 결과를 모두 메모리에 저장하는 것은 위험할 수 있다.
그래서 배열처럼 거대해질 수 있는 자료는 메모리를 절약할 수 있게 대부분 파괴적 처리로 이루어졌다.
2. 비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않는다.
// 변수 선언
const a = '혼자공부하는'
const b = '자바스크립트'
// 문자열을 연결
const c = a + b
c
"혼자공부하는자바스크립트"
// 원본 내용이 변경되지 않았다.
a
"혼자공부하는"
b
"자바스크립트"
장점 : 원본을 저장하기 때문에 자료 보호를 할 수 있다.
단점 : 메모리를 절약할 수 없다
메모리가 여유로운 현대의 프로그래밍 언어와 라이브러리는 자료 보호를 위해서 대부분 비파괴적 처리를 한다.
[선택 미션] p. 173 확인 문제 3번 문제 풀고, 풀이 과정 설명하기
다음 표시된 함수들이 파괴적 처리를 하는지 비파괴적 처리를 하는지 구분하시오.
① 비파괴적 처리 - 원본 문자열이 변하지 않았다.
② 파괴적 처리 - push() 함수를 사용해 맨 뒷부분에 "감"을 추가하였기 때문에 원본 내용이 변경되었다.
③ 비파괴적 처리 - 원본 문자열이 변하지 않았다.
④ 비파괴적 처리 - 원본 문자열이 변하지 않았다.
반응형