← Back to NOTES 🌰 ← Effective JavaScript 🤿

← 아이템 51 - 유사 배열 객체에 범용적인 배열 메서드를 재사용하라

Array 생성자 대신 배열 리터럴을 사용하라

핵심 요약

자세한 내용

Array 생성자의 문제점

1. 전역 객체 수정 위험

누군가 전역 Array를 수정했을 수도 있습니다:

Array = String;
new Array(1,2,3,4,5); // new String(1) - 원하지 않는 결과!

2. 숫자 인자의 특수 동작

Array 생성자를 숫자 하나의 인자로 호출하면 원하는 대로 동작하지 않습니다:

// 문자열 인자일 때
var a = ["superwalk"];
var a = new Array("superwalk"); // 동일한 결과

// 숫자 인자일 때 - 문제 발생!
var a = [29];                  // 29라는 값을 가진 배열
var a = new Array(29);         // 길이가 29이고 undefined로 채워진 배열

안전한 배열 생성 방법

// 권장: 리터럴 사용
var numbers = [1, 2, 3, 4, 5];
var strings = ["a", "b", "c"];
var mixed = [1, "hello", true];

// 비권장: 생성자 사용
var numbers = new Array(1, 2, 3, 4, 5);
var strings = new Array("a", "b", "c");
var mixed = new Array(1, "hello", true);

예제 코드