Теория JavaScript. ч.9. Функция .length
Предыдущие части:
3. Операторы, Операнды и Выражения
4. Приоритет операторов, Ассоциативность, Глобальность и Локальность
5. Переменные. Операции для назначения переменных

Функция.length позволяет увидеть кол-во символов, которые используются в строке. Встречалась работа с этой функцией в строках и при работе со скобочной нотацией.
Однако, помимо работы со строками, высказанной выше, эта функция также может быть необходима, для подсчёта количества элементов в массиве и обладает некими там свойствами, которые отличают её от многого.
Свойства в массиве:
1. При выведении на консоль, будет всего целым числом выше нуля и значением, меньше 4294967296 (2 в 32 степени).
2. Всегда будет больше, чем самый большой индекс элемента, который ему присвоил JS автоматически. Так как считает все элементы.
Однако, есть некие особенности для работы с.length и массивами.
1. length не указывает количество элементов массива с определёнными значениями:
-в плотном массиве (это массив, который хранит набор элементов, принимающих целые значения из заданного непрерывного списка) количество элементов соответствует значению свойства length массива без единицы (там всегда будет length-1);
-в разреженном массиве (это массив, в котором данные представлены не непрерывно, а фрагментарно и как итог: пропущенные элементы не получают автоматические индексы) length не указывает на реальное количество элементов: его значение будет больше, чем количество элементов массива, имеющих значение.
2. При добавлении или удалении элементов значение length изменяют только операции, изменяющие размер массива. Любые изменения массива, которые не влияют на индекс с максимальным значением, не изменяют значение length.
3. Если при изменении массива, значение length станет меньше или равно максимальному индексу, то элементы, индекс которых больше или равен новому размеру массива, удаляются. Ещё один интересный факт - при использовании значения length большего, чем число присвоенного индекса элементу, любой массив станет разреженным.
4. length можно присвоить нечисловой тип данных - JavaScript преобразует элемент в число. Если результат равен не числу или имеет отрицательное значение, то выдается ошибка Uncaught RangeError: Invalid array length.
Изменение свойства массива, удаление элементов с помощью команды, добавление элементов с новым индексом может стать причиной возникновения разрежённых массивов.Поэтому стоит быть внимательней с этой функцией.
