Off by one errors
(иногда называемой OBOE) возникает, когда вы пытаетесь настроить таргетинг на определенный индекс строки или массива (для среза или доступа к сегменту) или при циклировании по их индексам. Индексация JavaScript начинается с нуля, а не с одного, что означает, что последний индекс всегда на один меньше длины элемента. Если вы попытаетесь получить доступ к индексу, равному длине, программа может сбросить опорную ошибку индекса «вне диапазона» или напечатать undefined
. Когда вы используете методы строк или массивов, которые принимают диапазоны индексов в качестве аргументов, это помогает прочитать документацию и понять, включены ли они (элемент в указанном индексе является частью возвращаемого) или нет. Вот несколько примеров ошибок: let alphabet = "abcdefghijklmnopqrstuvwxyz";
пусть len = alphabet.length;
для (пусть i = 0; i <= len; i ++) {
// петли слишком много раз в конце
console.log (алфавит [I]);
}
для (пусть j = 1; j <len; j ++) {
// петли один или несколько раз и пропускает первый символ с индексом 0
console.log (алфавит [J]);
}
для (пусть k = 0; k <len; k ++) {
// Златовласки одобряет - это справедливо
console.log (алфавит [K]);
}