Javascript.RU

Приложение B

Update: Более новый материал по этой теме находится по адресу http://es5.javascript.ru.
Приложение B
(информативное)
Совместимость
B.1 Дополнительный синтаксис

Предыдущие версии ECMAScript включали дополнительный синтаксис и семантику для указания восьмеричных литералов и восьмеричных escape-последовательностей. Они были удалены из данной редакции ECMAScript. Это ненормативное приложение представляет единый синтаксис и семантику для восьмеричных литералов и восьмеричных escape-последовательностей для совместимости со старыми программами на ECMAScript.

B.1.1 Численные литералы

Синтаксис и семантика раздела 7.8.3 могут быть расширены согласно следующему описанию:

Синтаксис

ЧисленныйЛитерал ::
ДесятичныйЛитерал
ШестнадцатеричныйЦелыйЛитерал
ВосьмеричныйЦелыйЛитерал
ВосьмеричнаяЦифра :: одна из
0 1 2 3 4 5 6 7
ВосьмеричныйЦелыйЛитерал ::
0 ВосьмеричнаяЦифра
ВосьмеричныйЦелыйЛитерал ВосьмеричнаяЦифра

Семантика

  • МЗ ЧисловогоЛитерала :: ВосьмеричногоЦелогоЛитерала равняется МЗ ВосьмеричногоЦелогоЛитерала.
  • МЗ ВосьмеричнойЦифры :: 0 равно 0.
  • МЗ ВосьмеричнойЦифры :: 1 равно 1.
  • МЗ ВосьмеричнойЦифры :: 2 равно 2.
  • МЗ ВосьмеричнойЦифры :: 3 равно 3.
  • МЗ ВосьмеричнойЦифры :: 4 равно 4.
  • МЗ ВосьмеричнойЦифры :: 5 равно 5.
  • МЗ ВосьмеричнойЦифры :: 6 равно 6.
  • МЗ ВосьмеричнойЦифры :: 7 равно 7.
  • МЗ ВосьмеричногоЦелогоЛитерала :: 0 ВосьмеричнойЦифры равно МЗ ВосьмеричнойЦифры.
  • МЗ ВосьмеричногоЦелогоЛитерала :: ВосьмеричногоЦелогоЛитерала ВосьмеричнойЦифры равно сумме (МЗ ВосьмеричногоЦелогоЛитерала умноженной на 8) и МЗ ВосьмеричнойЦифры.
B.1.2 Строковые литералы

Синтаксис и семантика раздела 7.8.4 могут быть расширены согласно следующему описанию:

Синтаксис

EscapeПоследовательность ::
СимвольнаяEscapeПоследовательность
ВосьмеричнаяEscapeПоследовательность
ШестнадцатеричнаяEscapeПоследовательность
ЮникоднаяEscapeПоследовательность
ВосьмеричнаяEscapeПоследовательность ::
ВосьмеричнаяЦифра [предпросмотр ∉ ДесятичнаяЦифра]
ОтНуляДоТрёх ВосьмеричнаяЦифра
[предпросмотр ∉ ДесятичнаяЦифра]
ОтЧетырёхДоСеми ВосьмеричнаяЦифра
ОтНуляДоТрёх ВосьмеричнаяЦифра ВосьмеричнаяЦифра
ОтНуляДоТрёх :: одна из
0 1 2 3
ОтЧетырёхДоСеми :: одна из
4 5 6 7

Семантика

  • СиЗ EscapeПоследовательности :: ВосьмеричнойEscapeПоследовательности равно СиЗ ВосьмеричнойEscapeПоследовательности.
  • СиЗ ВосьмеричнойEscapeПоследовательности :: ВосьмеричнойЦифры [предпросмотр ∉ ДесятичнойЦифре] равно символу, код которого равняется МЗ ВосьмеричнойЦифры.
  • СиЗ ВосьмеричнойEscapeПоследовательности :: ОтНуляДоТрёх ВосьмеричнойЦифры [предпросмотр ∉ ДесятичнойЦифре] равно символу, код которого равняется сумме (МЗ ОтНуляДоТрёх, умноженного на 8) и МЗ ВосьмеричнойЦифры.
  • СиЗ ВосьмеричнойEscapeПоследовательности :: ОтЧетырёхДоСеми ВосьмеричнойЦифры равно символу, код которого равняется сумме (МЗ ОтЧетырёхДоСеми, умноженного на 8) и МЗ ВосьмеричнойЦифры.
  • СиЗ ВосьмеричнойEscapeПоследовательности :: ОтНуляДоТрёх ВосьмеричнойЦифры ВосьмеричнойЦифры равно символу, код которого равняется сумме (МЗ ОтНуляДоТрёх, умноженного на 64 (т.е., 82 ) ), (МЗ первой ВосьмеричнойЦифры, умноженной на 8) и МЗ второй ВосьмеричнойЦифры.
  • МЗ ОтНуляДоТрёх :: 0 равно 0.
  • МЗ ОтНуляДоТрёх :: 1 равно 1.
  • МЗ ОтНуляДоТрёх :: 2 равно 2.
  • МЗ ОтНуляДоТрёх :: 3 равно 3.
  • МЗ ОтЧетырёхДоСеми :: 4 равно 4.
  • МЗ ОтЧетырёхДоСеми :: 5 равно 5.
  • МЗ ОтЧетырёхДоСеми :: 6 равно 6.
  • МЗ ОтЧетырёхДоСеми :: 7 равно 7.
B.2 Дополнительные свойства

Некоторые реализации ECMAScript включили дополнительные свойства для стандартных встроенных объектов. Это ненормативное приложение предлагает единую семантику для таких свойств, при этом не включая эти свойства в качестве части стандарта.

B.2.1 escape (string)

Функция escape является свойством глобального объекта. Она вычисляет новую версию строкового значения, для которой некоторые символы были заменены на шестнадцатеричные escape-последовательности.

Для таких заменяемых символов, коды которых меньше или равны 0xFF, используется двухциферная escape-последовательность вида %xx. Для таких заменяемых символов, коды которых больше 0xFF, используется четырёхциферная escape-последовательность вида %uxxxx.

Когда функция escape вызывается с единственным аргументом string, предпринимаются следующие шаги:

1. Вызвать ToString(string).

2. Подсчитать количество символов в Результате(1).

3. Пусть R равно пустой строке.

4. Пусть k равно 0.

5. Если k равняется Результату(2), вернуть R.

6. Получить символ (представленный как 16-битное беззнаковое целое) на позиции k в строке Результат(1).

7. Если Результат(6) является одним из 69 непробельных символов "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@*_+-./ " - переход на шаг 13.

8. Если Результат(6) меньше 256 - переход на шаг 11.

9. Пусть S - строка, состоящая из шести символов "%uwxyz", где wxyz - четыре шестнадцатиричные цифры, кодирующие значение Результата(6).

10. Переход на шаг 14.

11. Пусть S равно строке, содержащей три символа "%xy", где xy - две шестнадцатеричные цифры, кодирующие значение Результата(6).

12. Переход на шаг 14.

13. Пусть S - строка, содержащая единственный символ Результат(6).

14. Пусть R - новое строковое значение, получаемое конкатенацией предыдущего значения R и S.

15. Увеличить k на 1. 16. Переход на шаг 5.

ЗАМЕЧАНИЕ
Это кодирование частично основан на кодировании, описанном в RFC1738, но весь процесс кодирования в данном стандарте описан выше без ссылки на RFC1738
.

B.2.2 unescape (string)

Функция unescape является свойством глобального объекта. Она вычисляет новую версию строкового значения, в которой escape-последовательности такого вида, какого могли бы быть введены функцией escape, заменяются на символы, которые они представляют.

Когда функция unescape вызывается с единственным аргументом string, предпринимаются следующие шаги:

1. Вызвать ToString(string).

2. Подсчитать количество символов в Результате(1).

3. Пусть R равно пустой строке.

4. Пусть k равно 0.

5. Если k равняется Результату(2), вернуть R.

6. Пусть c - символ на позиции k в строке Результат(1).

7. Если c не % - переход на шаг 18.

8. Если k больше, чем Результат(2)-6 - переход на шаг 14.

9. Если символ на позиции k+1 в Результате(1) не равен u, - переход на шаг 14.

10. Если четыре символа на позициях k+2, k+3, k+4 и k+5 в Результате(1) не являются шестнадцатеричными цифрами - переход на шаг 14.

11. Пусть c - символ, значение которого является целым, представленным четырьмя шестнадцатеричными цифрами на позициях k+2, k+3, k+4 и k+5 в строке Результат(1).

12. Увеличить k на 1.

13. Переход на шаг 18.

14. Если k больше, чем Результат(2)-3 - переход на шаг 18.

15. Если два символа на позициях k+1 и k+2 в строке Результат(1) не являются оба шестнадцатеричными цифрами - переход на шаг 18.

16. Пусть c - символ, код которого представляется двумя нулями и двумя шестнадцатеричными цифрами на позициях k+1 и k+2 в строке Результат(1).

17. Увеличить k на 2.

18. Пусть R - новое строковое значение, получаемое конкатенацией предыдущего значения R и c.

19. Увеличить k на 1.

20. Переход на шаг 5.

B.2.3 String.prototype.substr (start, length)

Метод substr принимает два аргумента start и length, преобразовывает данный объект к строке и возвращает её подстроку, начинающуюся с символа на позиции start и включающую length символов (или продолжающуюся до конца строки, если length равно undefined). Если start отрицательно, вместо него используется значение (sourceLength+ start), где sourceLength равно длине строки. Результатом является строковое значение (не объект String). Предпринимаются следующие шаги:

1. Вызвать ToString, передав ему значение this в качестве аргумента.

2. Вызвать ToInteger(start).

3. Если length равно undefined, использовать +∞ ; иначе вызвать ToInteger(length).

4. Подсчитать количество символов в Результате(1).

5. Если Результат(2) положителен или равен нулю - использовать Результат(2). Иначе использовать max(Результат(4)+ Результат(2), 0).

6. Вычислить min(max(Результат(3), 0), Результат(4)- Результат(5)).

7. Если Результат(6) <= 0 - вернуть пустую строку "".

8. Вернуть строку, содержащую Результат(6) последовательных символов Результата(1), начинающихся с символа на позиции Результат(5).

Свойство length метода substr равно 2.

ЗАМЕЧАНИЕ
Функция substr специально сделана не привязанной к типу. Она не требует, чтобы её значение this было объектом типа String. Таким образом, она может быть передана другим типам объектов для использования в качестве метода.

B.2.4 Date.prototype.getYear()

ЗАМЕЧАНИЕ
В большинстве случаев предпочтительнее использовать метод getFullYear, поскольку он позволяет избежать "проблемы года 2000".

Когда метод getYear вызывается без аргументов, предпринимаются следующие шаги:

1. Пусть t - данное значение времени.

2. Если t равно NaN - вернуть NaN.

3. Вернуть ГодДляВремени(МестноеВремя(t))-1900.

B.2.5 Date.prototype.setYear(year)

ЗАМЕЧАНИЕ
В большинстве случаев предпочтительнее использовать метод setFullYear, поскольку он позволяет избежать "проблемы года 2000".

Когда метод setYear вызывается с единственным аргументом year, предпринимаются следующие шаги:

1. Пусть t - результат выражения МестноеВремя(данное значение времени). Но если данное значение времени равно NaN, взять в качестве t +0.

2. Вызвать ToNumber(year).

3. Если Результат(2) равен NaN, установить значение свойства [[Value]] значения this равным NaN и вернуть NaN.

4. Если Результат(2) не равен NaN и 0 <= ToInteger(Результат(2)) <= 99, то Результат(4) равен ToInteger(Результат(2)) + 1900. Иначе Результат(4) равен Результату(2).

5. Вычислить СоставитьДень(Результат(4), МесяцДляВремени(t), ДатаДляВремени(t)).

6. Вычислить UTC(СоставитьДату(Результат(5), ВремяДня(t))).

7. Установить свойство [[Value]] значения this равным ОграничитьВремя(Результат(6)).

8. Вернуть значение свойства [[Value]] значения this.

B.2.6 Date.prototype.toGMTString()

ЗАМЕЧАНИЕ
Предпочтительнее использовать свойство toUTCString. Свойство toGMTString введено исключительно для совместимости со старым кодом. В новом коде на ECMAScript рекомендуется использовать свойство toUTCString
.

Объект Function, являющийся начальным значением свойства Date.prototype.toGMTString является тем же объектом Function, что и Date.prototype.toUTCString.


Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 02:14
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 12:26
#permalink

Автор: Wirginia Rudzik (не зарегистрирован), дата: 28 апреля, 2022 - 20:37
#permalink

Ogłoszenia towarzyskie Det har blivit smidigare att älska med casual dating-webbplatser. Tack till skaparna för att de har introducerat sådana här underbara områden för tillfredsställelse, för kärlek är lite överskattat!


Автор: Molly Pehrson (не зарегистрирован), дата: 17 мая, 2022 - 20:38
#permalink

Escort side Diese Seite ist nicht Ihre gewöhnliche Dating-Seite - es ist ein soziales Netzwerk und eine Dating-Anwendung, die ganz auf die Bedürfnisse, Wünsche und auch die Wünsche der Shemale Bereich gewidmet. Wenn Sie auf der Suche nach etwas mehr als nur eine durchschnittliche Transsexuelle Dating-Website, Diese Shemale datingsite nur die Website, die Sie tatsächlich gesucht haben.


Автор: Penelope Warburton (не зарегистрирован), дата: 19 мая, 2022 - 13:10
#permalink

TS Sex stands out from the rest in terms of its use. No lengthy profile texts here, but a photo collage that accurately reflects who you are and what you like. Ideal for transgender people to show their personality in one simple overview.


Автор: Elina Stamm (не зарегистрирован), дата: 2 августа, 2022 - 20:39
#permalink

Transen füllt die Lücke zwischen einer Anwendung wie Tinder und Grindr, die sich speziell an Heterosexuelle und Homosexuelle richtet. Obwohl man sich sowohl bei Tinder als auch bei Grindr als Transgender registrieren kann, sind sie nicht speziell für diesen Zweck gedacht. Das gilt auch für diese Website. Natürlich möchten Sie auch hier nicht in eine Schublade gesteckt werden. Aber wenn Sie auf der Suche nach einem Shemale sind, ist dies die richtige Website für Sie!


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

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
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
Антиспам
2 + 2 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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