Как интерпретируются индексы массива с плавающей запятой?

Я не могу найти никакой информации по этому поводу, но предположим, что у меня есть

var arr = [1, 2, 3];
var x = arr[1.5];

Я предположил, что Javascript будет floor индекс и возвращает элемент с индексом 1, но по крайней мере в Chrome кажется, что он просто возвращает undefined .

Это правильно? Я не могу найти ни одного стандарта или документации, подтверждающей это. На самом деле это действительно неудобно, потому что я предположил, что поведение округления позволяет вам передавать любое число с плавающей запятой в диапазоне [0, n) в индекс массива, но кажется, что вы молча сломаете свои массивы, если выполните математику с плавающей запятой, которая не округляется.

Изменить: если кто-то поддерживает список ошибок javascript, добавьте этот. Теперь мне нужно просмотреть 10 тыс. Строк кода javascript, чтобы увидеть, где это предположение, которое я сделал, незаметно вызывает ошибки!

15
задан mskfisher 16 May 2012 в 13:32
поделиться