다시 도전!
정답률 40%
문제별 결과
JavaScript에서 Object.assign()은 깊은 복사를 수행한다.
Object.assign()은 얕은 복사만 수행합니다. 중첩 객체는 참조가 복사됩니다. 깊은 복사에는 structuredClone()을 사용합니다.
JavaScript에서 호이스팅은 var에만 적용된다.
let, const, class, function 모두 호이스팅됩니다. 다만 let/const는 TDZ로 인해 초기화 전 접근 시 에러가 발생합니다.
JavaScript에서 delete 연산자로 변수를 삭제할 수 있다.
delete는 객체의 속성만 삭제할 수 있습니다. var/let/const로 선언된 변수는 삭제할 수 없습니다.
JavaScript에서 spread 연산자(...)로 배열을 복사할 수 있다.
const copy = [...arr]로 얕은 복사가 가능합니다. 객체도 {...obj}로 복사할 수 있습니다.
JavaScript에서 Array.isArray()와 instanceof Array는 항상 같은 결과이다.
다른 iframe/window에서 생성된 배열은 instanceof Array가 false일 수 있지만, Array.isArray()는 true를 반환합니다.
JavaScript에서 Array.from()은 배열만 입력으로 받을 수 있다.
Array.from()은 iterable이나 array-like 객체도 받을 수 있습니다. 문자열, Map, Set, NodeList 등이 가능합니다.
JavaScript에서 nullish coalescing 연산자(??)는 null과 undefined만 처리한다.
?? 연산자는 null과 undefined일 때만 대체값을 반환합니다. ||는 0, "", false 등 falsy 값도 대체합니다.
JavaScript에서 NaN === NaN은 true이다.
NaN은 자기 자신과도 같지 않습니다. NaN === NaN은 false입니다. Number.isNaN()으로 확인합니다.
JavaScript에서 setTimeout(fn, 0)은 즉시 실행된다.
setTimeout(fn, 0)은 현재 콜 스택이 비워진 후, 최소 지연 시간 후에 태스크 큐에서 실행됩니다.
JavaScript에서 forEach()는 break로 중단할 수 있다.
forEach()는 break를 사용할 수 없습니다. 중단하려면 for...of나 some()/every()를 사용합니다.