자바스크립트에서 == 와 === 가 어떻게 다른지 설명해 주세요.
자바스크립트는 엄격한 비교(일치 비교)와 형변환 비교(동등 비교)의 두 가지 방법을 가지고 있다.
동등 연산자(==)는 숫자와 문자열을 비교할 때, 문자열을 숫자로 변환한다. (자료형을 일치시킨다)
일치 연산자(===)는 피연산자끼리 형을 변환하지 않고 엄격하게 비교한다.
자바스크립트에서 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)에 대해 설명해 주세요.
얕은 복사는 객체의 참조값(주소)를 복사하는 것이고, 데이터 자체를 복사한 것이 아니라 하나의 데이터를 공유하는 것이다.
깊은 복사는 객체의 값 자체를 복사해 원본과의 참조가 완전히 끊어진다.
깊은 복사는 중첩된 모든 객체를 복사해야 하므로 성능에 부담이 될 수 있고, 얕은 복사는 빠르지만 원본 객체가 수정되면 복사본에도 영향을 줄 수 있다.