자바스크립트는 자료 처리를 위해서 다양한 함수 및 연산자를 제공한다. 자료 처리 연산자, 함수, 메소드는 크게 비파괴적 처리와 파괴적 처리로 구분할 수 있는데 이는 자료 처리 후 원본의 상태변화에 따라서 구분을 한다.
비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않는다.
파괴적 처리 : 처리 후에 원본 내용이 변경된다.
●파괴적 처리
데이터의 처리 후 자료의 원본이 변경되는 것을 의미하는데 다음 코드들을 보면서 이해해 보자.
> const array = ["사과", "딸기", "파인애플"]
> array.push("바나나")
4
> array
["사과", "딸기", "파인애플", "바나나"]
이렇듯 push()메소드를 실행한 후에 arrray 배열의 값을 보면 변경된 것을 알 수 있다.
●비파괴적 처리
비파괴적 처리란 파괴적 처리와 반대로 자료의 원본이 변경되지 않는 것을 의미한다.
> const a = "Hello"
> const b = "World"
> const c = a + b
> c
"HelloWorld"
> a
"Hello"
> b
"World"
위 코드와 같이 a와 b를 연결한 c를 만들고나서 a와 b를 각각 출력했을 때, 원본 내용이 변하지 않는것을 확인할 수 있다.
예전에는 컴퓨터의 메모리가 부족해서 프로그래밍 언어가 메모리를 절약해서 사용하는 방식으로 설계가 되었다고 한다. 그렇기에 배열과 같은 데이터가 커질 수 있는 자료들은 파괴적 처리로 이루어졌었다. 메모리를 절약할 수 있지만 원본 데이터가 사자지기 때문에 위험할 수 있다. 지금 현재에는 메모리 크기도 여유로워지고 재정도 많이되서 대부분 비파괴적 처리를 주로 사용하고 있다고 한다!
'자바스크립트' 카테고리의 다른 글
[모던자바스크립트 Deep Dive] 9.4 단축평가 (0) | 2021.09.23 |
---|---|
[모던자바스크립트 Deep Dive] 변수(Variable) (0) | 2021.09.20 |
React를 사용하는 이유??? (0) | 2021.09.05 |
[JavaScript] 배열의 특정 위치에 요소 추가하기 (0) | 2021.07.16 |
[JavaScript] 짧은 조건문 (0) | 2021.07.14 |