I realized you looked at what is contained in the array via console.log. Console.log automatically brought the string index to the number, that is, it shows not what it is.
1430904228000 is more than (2 32 - 2) = 4,294,967,294 - the maximum numerical index of the array in javascript. This magic number exists because the maximum length of the array is defined in the spec as the maximum 32-bit unsigned integer, and the indices start at 0.
Arrays in js are inherited from objects, and according to an array, you can specify any string key and its value as any object, but changing the array string keys does not affect its length
property, which you can easily verify in the console:
var arr=[0]; arr["1"]=1; //Строковые индексы которые можно привести к числу, к числу приведутся arr.smth = 'trololo'; arr["1430904228000"] = 'b3ce520734e536cb9a6ecf8665a6f479'; console.log(arr.smth); console.log(arr.length); console.log(arr); // И здесь мы увидим тот самый "странный" элемент массива который на самом деле строковый.
It seems that this construction is perceived by the interpreter as a string key of the object "1430904228000", therefore the length does not change.
It is worth adding that adding string keys to an array is a bad practice, because firstly it destroys interpreter optimizations, secondly, other programmers usually don’t expect them there.