Agent_Smith на самом деле их достаточно много. А могу ли я поинтересоваться Вы использовали ее как бекенд для мобильного приложения или какого-то другого?
Да, потому что length — длина массива: число, на единицу превосходящее максимальный индекс массива. А индекс не может быть строкой. А если вы при таких условиях:
var a = [];
a[10]= 'value1';
a[11]= 'value2';
a.length;
ожидаете увидеть 2, то вас так же ждет неприятный сюрприз. А если вы просто выведите значение переменной а, то можете вообще со стула упасть.