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