[위클리 페이퍼] - 3주차

ioioi·2023년 11월 5일
0

Weekly Mission

목록 보기
3/4
post-thumbnail

📌 자바스크립트에서 == 와 === 가 어떻게 다른지 설명해 주세요.

== (동등 연산자, equal)

  • 두 피연산자의 값이 서로 같으면 참(true)을 반환합니다.
  • 타입이 서로 다를 경우 강제 형변환 과정을 통해 연산자들을 공통 타입으로 만들고 그 안에 있는 값만을 비교하는 '느슨한 비교'를 합니다.

=== (일치 연산자, strict equal)

  • 타입의 변환 없이 두 피연산자의 값이 같고, 타입도 같아야만 참(true)을 반환합니다.
  • 형변환 과정을 수행하지 않는 '엄격한 비교'를 합니다.
  • 안전한 코드를 작성하기 위해서는 일치 연산자를 사용해야 합니다.

📌 자바스크립트에서 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)에 대해 설명해 주세요.

얕은 복사(Shallow Copy)

  • 객체를 복사할 때 원본 값과 복사된 값이 같은 참조(=메모리 주소)를 가리키는 것을 의미합니다.
  • 얕은 복사 후 해당 변수를 재사용하여 수정한다면 원본 값이 동시에 변하므로 주의해야 합니다.
  • Object.assign()을 이용하면 객체 자체는 깊은 복사가 수행되지만, 2차원 이상의 객체는 얕은 복사가 수행되므로 주의해야 합니다.
  • Array.prototype.slice()
  • Object.assign()
  • Spread 연산자

깊은 복사(Deep Copy)

  • 복사된 객체가 다른 주소를 참조하며 내부의 값만 복사된다.
  • JSON.parse && JSON.stringify

원시값과 참조값이란?

원시값 : Number, String, Boolean, Null, Undefined, Symbol

  • 변수에 원시값을 저장하면 변수의 메모리 공간에 실제 데이터 값이 저장됩니다. 할당된 변수를 조작하려고 하면 저장된 실제 값이 조작됩니다.
  • 복사할 때 그 값은 또 다른 독립적인 메모리 공간에 할당하기 때문에, 복사를 하고 값을 수정해도 기존 원시값을 저장한 변수에는 영향을 끼치지 않습니다. = '깊은 복사'

참조값 : Object

  • 여러 자료형으로 구성되는 메모리에 저장된 객체입니다.
  • 변수에 저장된 메모리 공간의 참조(위치 값)를 저장합니다.
  • 변수가 객체의 참조를 가리키고 있기 때문에 복사된 변수 또한 객체가 저장된 메모리 공간의 참조를 가리키고 있습니다. = '얕은 복사'
profile
UIUX/Frontend

0개의 댓글

관련 채용 정보