Я не могу найти никакой информации по этому поводу, но предположим, что у меня есть
var arr = [1, 2, 3];
var x = arr[1.5];
Я предположил, что Javascript будет floor
индекс и возвращает элемент с индексом 1, но по крайней мере в Chrome кажется, что он просто возвращает undefined
.
Это правильно? Я не могу найти ни одного стандарта или документации, подтверждающей это. На самом деле это действительно неудобно, потому что я предположил, что поведение округления позволяет вам передавать любое число с плавающей запятой в диапазоне [0, n) в индекс массива, но кажется, что вы молча сломаете свои массивы, если выполните математику с плавающей запятой, которая не округляется.
Изменить: если кто-то поддерживает список ошибок javascript, добавьте этот. Теперь мне нужно просмотреть 10 тыс. Строк кода javascript, чтобы увидеть, где это предположение, которое я сделал, незаметно вызывает ошибки!