# 객체와 배열의 혼동

초보 개발자가 흔히 하는 실수 중에서 배열이 필요한데 객체를 사용한다거나 객체가 필요한데 배열을 사용하는 경우 입니다. 규칙은 간단합니다. 속성 이름이 작은 크기의 연속된 정수이면 배열을 사용하고 그렇지 않으면 객체를 사용합니다.

자바스크립트 자체도 배열과 객체를 혼동하고 있습니다. 그 이유는 typeof연산자로 배열의 타입을 확인해보면 object로 출력이 되기 때문입니다. 그렇기 때문에 자바스크립트에서는 배열과 객체를 구분하는 내장함수가 없습니다. 그렇기 때문에 직접 만들어서 사용을 해야 합니다.

let isArray = function (arr) {
  return arr && typeof arr === 'object' && arr.constructor === Array;
};