Javascript.RU

Исходный текст

Update: Более новый материал по этой теме находится по адресу http://es5.javascript.ru.
6. Исходный текст

Исходный текст в ECMAScript представляется в виде последовательности символов в кодировке Юникод версии 2.1 или более поздней с использованием формата трансформации UTF-16. Текст должен быть нормализован к форме нормализации C (канонической композиции), описание которой приведено в приложении 15 к стандарту Юникода (UAX-15). От корректных реализаций ECMAScript не требуется проведение никаких операций по нормализации текста и не требуется вести себя так, будто они производят его нормализацию.

ИсходныйСимвол ::
любой символ Unicode

Исходный текст на ECMAScript может содержать любые символы Юникода. Все символы Юникода, означающие пробел, обрабатываются как символ пробела, и все символы Юникода, обозначающие разделение строк или абзацев, обрабатываются как разделители строк. Не принадлежащие к латинице символы Юникода разрешены к использованию в идентификаторах, строковых литералах, литералах регулярных выражений и комментариях.

Далее по тексту документа словосочетание "кодовая точка" и слово "символ" будут использоваться для обозначения 16-разрядного беззнакового значения, используемого для представления единичного элемента текста в кодировке UTF-16. Словосочетание "символ Юникода" будет использоваться для обозначения абстрактной лингвистической или типографической единицы, представленной единичным числовым значением Юникода (которое может быть длинее 16-ти бит и, таким образом, может быть представлено более чем одной кодовой точкой). Это обозначение применяется только к сущностям, соответствующим одному числовому значению Юникода. Компоненты композиций являются отдельными "символами Юникода", даже если с точки зрения пользователя вся композиция выглядит как один символ.

В строковых литералах, литералах регулярных выражений и идентификаторах любой символ (кодовая точка) может быть также представлен как юникодная escape-последовательность, состоящая из шести символов: комбинация \u и следующие за ней четыре шестнадцатеричные цифры. В составе комментария такая escape-последовательность принимается за часть комментария и просто игнорируется. В составе строкового литерала или литерала регулярного выражения юникодная escape-последовательность трактуется как единичный символ литерала. В составе идентификатора escape-последовательность трактуется как единичный символ идентификатора.

ЗАМЕЧАНИЕ 1
Хотя в данном документе иногда упоминается "преобразование" между "символом строки" и 16-разрядным беззнаковым целым, являющимся кодом UTF-16 для этого символа, на самом деле никакого преобразования не производится, т.к. "символ строки" в действительности представляется при помощи этого 16-разрядного символа.

ЗАМЕЧАНИЕ 2
Язык ECMAScript отличается от языка программирования Java в области поведения юникодных escape-последовательностей. В программе на Java, например, если escape-последовательность \u000A встречается в составе однострочного комментария, она трактуется как символ окончания строки (символ Юникода 000A - "перевод строки"), и, таким образом, следующий за ней символ уже не считается частью комментария. Аналогично, если юникодная escape-последовательность \u000A встречается в строковом литерале программы на Java, она тоже трактуется как символ конца строки, который недопустим в строковом литерале (в Java, чтобы включить в строковой литерал символ перевода строки, вместо \u000A следует писать \n). В программе на ECMAScript юникодная escape-последовательность в составе комментария не подлежит расшифровке и, таким образом, не может означать окончания комментария. Аналогично, юникодная escape-последовательность в составе строкового литерала в программе на ECMAScript всегда трактуется как один из символов в значении строки и не может быть расшифрована как символ конца строки или символ кавычки, которые могут означать окончание строкового литерала.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
9 + 6 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum