# 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, длинна массива не обязательно совпадает с фактическим числом элементов в нем.
