티스토리 뷰
기본형과 참조형
- 기본형과 참조형의 구분 기준은 무엇인가요?
- 불변성과 가변성
- 불변성은 메모리 안의 데이터가 변경되지 않음
- 가변성은 메모리 안의 데이터가 변경 됨
- https://velog.io/@darong_/기본형-데이터와-참조형-데이터
- 자바스크립트에서 변수와 식별자의 차이는 무엇인가요?
- 변수 = 변할 수 있는 데이터를 담는 그릇
- 식별자 = 변수를 구분할 수 있는 이름 (변수명)
- 자바스크립트에서 데이터를 할당하는 원리? 방식?
- 변수를 선언하고 메모리에 해당 변수와 값을 할당하여 저장한다.
- 메모리를 효율적으로 관리하기 위해 변수와 데이터를 따로 저장하여 변수의 값은 데이터를 참조한다.
- 변수가 메모리에 할당되는 과정과 메모리에 대해 설명해보세요. ⇒ js 관점에서
- 변수와 데이터를 저장하고 관리하는 공간.
- 코드를 작성할 때 불변성이 중요한 이유를 설명해보세요.
- 가변성이 있으면 복제한 데이터를 수정할 때 원본 데이터도 수정되는 등 예기치 못한 오류가 발생할 수 있다.
- 얕은 복사와 깊은 복사의 차이에 대해 설명해보세요.
- 얕은 복사는 바로 아래 단계의 값만 복사, 깊은 복사는 내부의 모든 값을 전부 복사
- Json 사용하거나 라이브러리 사용하면 됨
- 자바스크립트의 객체는 참조에 의해 복사됩니다. 이로 인해 생길 수 있는 오류와, 해당 오류를 피하는 방법을 설명해주세요.
- 객체의 참조를 복사하게 되면 데이터를 수정할 때 원본 데이터도 수정되는 등의 예기치 못한 오류가 발생할 수 있습니다. 해당 오류를 피하기 위해서 객체 내부의 모든 값을 복사하는 깊은 복사 방식을 사용할 수 있습니다. 간단하게 JSON, 라이브러리를 사용하면 됩니다.
불변 객체
- 불변성, 가변성의 기준
- 메모리 위치가 바로 바뀌느냐 바로 바뀌지 않느냐 차이
- 원시값(기본형)은 불변성만 가짐. 참조형은 가변성을 가짐.
- 얕은 복사와 깊은 복사의 차이
- 한단계 아래만 복사하면 얕은 복사. 모든 단계를 복사하면 깊은 복사.
- 얕은 복사와 깊은 복사의 방법
- JSON, Object.getOwnProperty… 등을 사용하면 됨
- JSON은 함수를 복사하지 않음.
- 재귀함수를 사용한 깊은 복사
- 어떤 상황에서 불변 객체가 필요한지?
- 여러곳에서 참조하는 객체를 복사할때
- React State에서 상태변화 감지를 위해 불변성을 유지해야 함
- ex) {a:1} 이라는 상태를 {a:2}로 바꾸려면 setState(prev ⇒ {prev.a = 2 return prev})가 아니라 setState(prev ⇒ {const cur = {…prev, a:2}; return cur})
출처 : 코어 자바스크립트
'TIL > 일기, 공부 내용 정리' 카테고리의 다른 글
This와 명시적 This 바인딩 (2) | 2024.12.19 |
---|---|
undefined와 null, 실행 컨텍스트 정리 (0) | 2024.12.17 |
tanstack query를 조금 연습해야겠다 (2) | 2024.10.24 |
팀 과제 스밋 - 와이어프레임 만들기, 기능 세분화, 간단한 역할 분담 (1) | 2024.10.18 |
미루는 습관 고치기 3 (0) | 2024.09.25 |