티스토리 뷰

기본형과 참조형

  1. 기본형과 참조형의 구분 기준은 무엇인가요?
  2. 자바스크립트에서 변수와 식별자의 차이는 무엇인가요?
    • 변수 = 변할 수 있는 데이터를 담는 그릇
    • 식별자 = 변수를 구분할 수 있는 이름 (변수명)
  3. 자바스크립트에서 데이터를 할당하는 원리? 방식?
    • 변수를 선언하고 메모리에 해당 변수와 값을 할당하여 저장한다.
    • 메모리를 효율적으로 관리하기 위해 변수와 데이터를 따로 저장하여 변수의 값은 데이터를 참조한다.
  4. 변수가 메모리에 할당되는 과정과 메모리에 대해 설명해보세요. ⇒ js 관점에서
    • 변수와 데이터를 저장하고 관리하는 공간.
  5. 코드를 작성할 때 불변성이 중요한 이유를 설명해보세요.
    • 가변성이 있으면 복제한 데이터를 수정할 때 원본 데이터도 수정되는 등 예기치 못한 오류가 발생할 수 있다.
  6. 얕은 복사와 깊은 복사의 차이에 대해 설명해보세요.
    • 얕은 복사는 바로 아래 단계의 값만 복사, 깊은 복사는 내부의 모든 값을 전부 복사
    • Json 사용하거나 라이브러리 사용하면 됨
  7. 자바스크립트의 객체는 참조에 의해 복사됩니다. 이로 인해 생길 수 있는 오류와, 해당 오류를 피하는 방법을 설명해주세요.
    • 객체의 참조를 복사하게 되면 데이터를 수정할 때 원본 데이터도 수정되는 등의 예기치 못한 오류가 발생할 수 있습니다. 해당 오류를 피하기 위해서 객체 내부의 모든 값을 복사하는 깊은 복사 방식을 사용할 수 있습니다. 간단하게 JSON, 라이브러리를 사용하면 됩니다.

불변 객체

  1. 불변성, 가변성의 기준
    • 메모리 위치가 바로 바뀌느냐 바로 바뀌지 않느냐 차이
    • 원시값(기본형)은 불변성만 가짐. 참조형은 가변성을 가짐.
  2. 얕은 복사와 깊은 복사의 차이
    • 한단계 아래만 복사하면 얕은 복사. 모든 단계를 복사하면 깊은 복사.
  3. 얕은 복사와 깊은 복사의 방법
    • JSON, Object.getOwnProperty… 등을 사용하면 됨
    • JSON은 함수를 복사하지 않음.
    • 재귀함수를 사용한 깊은 복사
  4. 어떤 상황에서 불변 객체가 필요한지?
    • 여러곳에서 참조하는 객체를 복사할때
    • React State에서 상태변화 감지를 위해 불변성을 유지해야 함
      • ex) {a:1} 이라는 상태를 {a:2}로 바꾸려면 setState(prev ⇒ {prev.a = 2 return prev})가 아니라 setState(prev ⇒ {const cur = {…prev, a:2}; return cur})

 

출처 : 코어 자바스크립트

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함