Array 인스턴스의 length 속성은 배열의 길이를 반환합니다. 반환값은 부호 없는 32비트 정수형이며, 배열의 최대 인덱스보다 항상 큽니다. length 속성에 값을 설정할 경우 배열의 길이를 변경합니다.
 

설명

length 속성의 값은 양의 정수이며 2의 32제곱 미만의 값을 가집니다. (232)

var namelistA = new Array(4294967296); // 2 to the 32nd power = 4294967296 
var namelistC = new Array(-100) // negative sign

console.log(namelistA.length); // RangeError: Invalid array length 
console.log(namelistC.length); // RangeError: Invalid array length 



var namelistB = []; 
namelistB.length = Math.pow(2,32)-1; // set array length less than 2 to the 32nd power 
console.log(namelistB.length); 

// 4294967295

아무 때나 length 속성에 값을 설정해 배열을 절단할 수 있습니다. length 속성으로 배열의 길이를 늘리면, 실제 원소들의 수가 증가합니다. 예를 들어 길이 2 배열의 length를 3으로 설정한다면 마지막에 undefined가 추가돼 총 개수가 3개가 됩니다.

var arr = [1, 2, 3];
printEntries(arr);

arr.length = 5; // set array length to 5 while currently 3.
printEntries(arr);

function printEntries(arr) {
  var length = arr.length;
  for (var i = 0; i < length; i++) {
    console.log(arr[i]);
  }
  console.log('=== printed ===');
}

// 1
// 2
// 3
// === printed ===
// 1
// 2
// 3
// undefined
// undefined
// === printed ===

그러나 length 속성의 반환값이 배열에 꼭 정의된 원소의 수를 나타내진 않습니다. length와 숫자형 속성의 관계를 참고하세요.

Property attributes of Array.length
Writable yes
Enumerable no
Configurable no

예제

배열 순회

다음 예제는 numbers 배열을 length 속성의 크기만큼 순회합니다. 각 원소의 값은 두 배가 됩니다.

var numbers = [1, 2, 3, 4, 5];
var length = numbers.length;
for (var i = 0; i < length; i++) {
  numbers[i] *= 2;
}
// numbers is now [2, 4, 6, 8, 10]

배열 단축

다음 예제는 numbers 배열의 현재 길이가 3보다 클 경우 3으로 줄입니다.

var numbers = [1, 2, 3, 4, 5];

if (numbers.length > 3) {
  numbers.length = 3;
}

console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3

명세

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard Initial definition.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.length' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.length' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.length' in that specification.
Draft  

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

같이 보기

문서 태그 및 공헌자

이 페이지의 공헌자: urty5656, preco21
최종 변경자: urty5656,