-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathx6.html
executable file
·54 lines (46 loc) · 9.33 KB
/
x6.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html class="split chapter"><head>
<meta charset="utf-8"><title>6 Исходный текст | ES5 на русском</title><link rel="stylesheet" href="style.css"><link href="x5.html" title="5 Соглашения о наименованиях " rel="prev">
<link href="index.html" title="Содержание" rel="index">
<link href="x7.html" title="7 Лексические соглашения " rel="next">
</head><body><div class="head">
<h2 id="top">Спецификация ECMAScript 5.1 с аннотациями <span id="timestamp"></span></h2>
<!--left..-->
<div id="slogan">
<div id="share-toggler">Поделиться</div>
<div class="share">
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://es5.javascript.ru/" data-lang="ru" data-size="large" data-count="horizontal">Твитнуть</a>
<div id="fb-root"></div>
<div style="margin-bottom:5px" class="fb-like" data-href="http://es5.javascript.ru" data-send="false" data-action="recommend" data-layout="button_count" data-width="300" data-show-faces="false" data-font="arial"></div>
<div class="vk-share-wrapper">
<script src="http://vkontakte.ru/js/api/share.js?9" charset="windows-1251"></script>
<script src="misc.js"></script>
</div>
<div style="margin-top:6px">
<g:plusone annotation="inline" href="http://es5.javascript.ru/" width="120" size="standard" style="vertical-align:middle"></g:plusone>
</div>
</div>
</div>
<!--..left-->
<div id="annotations">
</div>
</div>
<nav><a href="x5.html">← 5 Соглашения о наименованиях </a> –
<a href="index.html" class="toc-nav">Содержание</a> –
<a href="x7.html">7 Лексические соглашения →</a>
</nav>
<h2 id="x6">6 Исходный текст <a href="#x6">#</a> <a href="#x6-toc" class="bak">Ⓣ</a> <b class="erra">Ⓔ</b> <b class="rev1">①</b> <b class="anno">Ⓐ</b></h2>
<p>
Исходный текст на ECMAScript представлен как последовательность символов в кодировке Юникод версии 3.0 или более поздней. Текст должен быть нормализован в соответствии с Формой нормализации "С" (каноническая композиция), в соответствии с описанием в Техническом отчёте № 15 стандарта Юникод. К реализациям ECMAScript, соответствующим стандарту, не предъявляется требований производить нормализацию текста, или вести себя так, словно они производят его нормализацию. Предполагается, что исходный текст на ECMAScript представляет собой последовательность 16-битовых кодовых единиц в целях данной спецификации. Такой исходный текст может включать в себя последовательности 16-битовых кодовых единиц, которые не являются действительными символами в кодировке UTF-16. Если фактический исходный текст был закодирован не в виде 16-битовых кодовых единиц, он должен обрабатываться так, как если бы он сначала был преобразован в UTF-16.</p>
<p class="def1">
<I>SourceCharacter </I><b>::</b></p>
<p class="def2-alt">
любой символ Юникода</p>
<p>
Во всем тексте данного документа фраза "кодовая единица" <em>code unit</em> или слово "символ" <em>character</em> будут означать 16-битовое беззнаковое значение, используемое для представления одной 16-битовой единицы текста. Фраза "символ Юникода" <em>Unicode character</em> будет использоваться для обозначения абстрактной лингвистической или типографической единицы, представленной единичной скалярной величиной в формате юникода, которая может быть длиннее 16 битов и поэтому может быть представлена не одной, а несколькими кодовыми единицами. Для обозначения такой скалярной величины используется фраза "кодовая точка" <em>code point</em>. Фраза "символ Юникода" характеризует только сущности, представленные одиночными скалярными величинами: компоненты объединённой последовательности символов всё равно являются отдельными "символами Юникода", хотя пользователь может воспринимать всю последовательность как один символ.</p>
<p>
В строковых литералах, литералах регулярных выражений и идентификаторах любой символ (кодовая единица) может быть также выражен в виде управляющей последовательности <em>escape sequence</em>, состоящей из шести символов Юникода, а именно: <code><b>\u</b></code> плюс четыре шестнадцатиричные цифры. В составе комментария такая управляющая последовательность успешно игнорируется как часть комментария. В составе строкового литерала или литерала регулярного выражения такая управляющая последовательность отдаёт один символ значению этого литерала. В составе идентификатора такая управляющая последовательность отдает один символ этому идентификатору.</p>
<p><B>ПРИМЕЧАНИЕ</B> Несмотря на то, что в данном документе иногда говорится о "преобразовании" между "символом" в "строке" и 16-битовым беззнаковым целым, в действительности никакой трансформации нет, поскольку "символ" в "строке" фактически представлен посредством этого 16-битового беззнакового целого.</p>
<p>
ECMAScript отличается от языка программирования Java в вопросе поведения управляющих последовательностей Юникода. В программе на Java, например, если управляющая последовательность Юникода <code><b>\u000A</b></code>, встречается в рамках однострочного комментария, она трактуется как символ окончания строки (символ Юникода <code><b>000A</b></code> – перевод строки), поэтому следующий за ней символ не является частью комментария. Аналогично, если в строковом литерале в программе на Java встречается управляющая последовательность <code><b>\u000A</b></code>, она также трактуется как символ окончания строки, который в строковом литерале не допускается – необходимо писать <code><b>\n</b></code> вместо <code><b>\u000A</b></code>, чтобы перевод строки стал частью строкового значения строкового литерала. А в программе на ECMAScript управляющая последовательность юникода, находясь в составе комментария, не подлежит трактованию и поэтому не может означать окончание комментария. Аналогично, управляющая последовательность в строковом литерале в программе на ECMAScript всегда передаёт один символ строковому значению литерала и не трактуется как символ окончания строки или как кавычки, которые могут означать окончание строкового литерала.</p>
</body><script src="anno.js"></script></html>