> For the complete documentation index, see [llms.txt](https://strctr.gitbook.io/programming/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://strctr.gitbook.io/programming/01-languages/javascript/01-language/b-structured/b1-arrays/02-array-length.md).

# 02. Array Length

> Каждый массив имеет свойство `lenght`. Значение этого свойства на единицу больше наибольшего индекса элемента в массиве.

Особенность массивов состоит в том, что при использовании имен свойств, которые являются неотрицательными целыми числами массивы *автоматически* определяют значение свойства `length`. Если в массив добавляет новый элемент (по любому индексу), то значение `lenght` увеличивается автоматически.

Значение `lenght` можно устанавливать самостоятельно. Память под несуществующие элементы при этом не выделяется.

```javascript
> const arr = [ 'a', 'b' ];
> arr.length = 3;
> arr // one hole at the end [ 'a', 'b', ,]
```

Однако, если задать `lenght` значение меньше, чем необходимо, то все свойства с индексом большим, или равным длине массива удаляются:

```javascript
> const arr = [ 'a', 'b', 'c' ];
> arr.length = 1;
> arr
['a']
```

Значение `legnth` возвращает индекс наибольшего элемента в массиве, но не актуальное число элементов в массиве.

```javascript
> [ 'a', 'b' ].length
2
> [ 'a', , 'b' ].length
3
```

В JS, длинна массива не обязательно совпадает с фактическим числом элементов в нем.
