Page 94 - 6105
P. 94
Від’ємні аргументи інтерпретуються як рівні нулю. Занадто великі значення
усікаються до довжини рядка:
alert ( "testme" .substring (-2)); // "testme", -2
стає 0
Крім того, якщо start > end, то аргументи міняються місцями, тобто
повертається ділянка рядка між start і end:
alert ( "testme" .substring (4, -1)); // "test"
// -1 стає 0 -> отримали substring (4, 0)
// 4> 0, так що аргументи міняються місцями ->
substring (0, 4) = "test"
При використанні Slice від’ємні значення відраховуються від кінця рядка:
alert ( "testme" .slice (-2)); // "me", від 2 позиції з
кінця
alert ( "testme" .slice (1, -1)); // "estm", від 1
позиції до першої з кінця.
Це набагато зручніше, ніж дивна логіка substring. Від’ємне значення
першого параметра підтримується в substr у всіх браузерах, крім IE8-.
Якщо вибирати з цих трьох методів один, для використання в більшості
ситуацій – то це буде slice: він і від’ємні аргументи підтримує, і працює найбільш
очевидно.
7.4. Кодування Юнікод
Як ми знаємо, символи порівнюються в алфавітному порядку 'А' < 'Б' < 'В'
<... < 'Я'. Але є кілька виключень.
Наприклад, буква 'а' більша від літери 'Я'. Буква 'е' знаходиться в алфавіті
між е і ж: абвгдеёжз і теж 'е' більше 'я'.
alert ( 'а'> 'Я'); // true
alert ( 'е'> 'я'); // true
93