Page 95 - 6105
P. 95

Щоб розібратися з цим, звернемося до внутрішнього представлення рядків в

               JavaScript. Всі рядки мають внутрішню систему кодування Юнікод.


                      Неважливо, якою мовою написана сторінка, чи знаходиться вона в windows-
               1251  або  utf-8.  Усередині  JavaScript-інтерпретатора  всі  рядки  приводяться  до


               єдиного «Юнікодного» виду. Кожному символу відповідає свій код.
                      Є метод для отримання символу за його кодом:


                      String.fromCharCode (code) – повертає символ за кодом code

                      alert  (String.fromCharCode  (тисячі  сімдесят  два));  //

               'а'
                      І метод для отримання цифрового коду з символу:


                      str.charCodeAt (pos) – повертає код символу на позиції pos. Відлік позиції
               починається з нуля.


                      alert ( "абрикос" .charCodeAt (0)); // 1072, код 'а'
                      Тепер  повернемося  до  прикладів  вище.  Чому  порівняння  'е'>  'я'  і  'а'>  'Я'


               дають такий дивний результат? Справа в тому, що символи порівнюються не за

               алфавітом, а за кодом. У кого код більше - той і більше. У юнікоді є багато різних

               символів. Кириличним буквам відповідає тільки невелика частина з них.

                      Виведемо відрізок символів юнікоду з кодами від 1034 до 1113:

                      var str = '';

                      for (var i = 1034; i <= 1113; i ++) {

                        str + = String.fromCharCode (i);

                      }

                      alert (str);
                      Результат:


                      ЊЋЌ ЎЏАБВГДЕЖЗІЙКЛМНОПРСТУФХЦЧШЩ'ИЬЕЮЯабвгдежзійклм
               нопрстуфхцчшщ'иьеюя ёђѓєѕіїјљ


                      Отже, можна зробити висновок, що:

                      малі літери йдуть після великої, тому вони завжди більше;


                                                                94
   90   91   92   93   94   95   96   97   98   99   100