ECMAScript 5.1 с аннотациями

Поделиться

Это – перевод спецификации EcmaScript 5 с аннотациями. Исходный код доступен на https://github.com/iliakan/es5.

Официальная спецификация доступна на сайте http://www.ecma-international.org. Версия спецификации, послужившая исходной для перевода, находится на es5.github.com.

Любое использование текста (кроме таблицы содержания) должно сопровождаться указанием копирайта ECMA и лицензии. Будет полезно также дать ссылку на этот перевод, т.к. мы будем улучшать его и поддерживать в актуальном состоянии.

Улучшения и исправления вы можете присылать pull-запросом на GitHub или на e-mail: iliakan@gmail.com (Илья Кантор).

Для просмотра аннотаций, следуйте по ссылкам , , , , , и в заголовках. Ключ к маркерам описывает значения аннотаций.

Оглавление

  1. Введение
  2. 1 Область применения
  3. 2 Соответствие стандарту
  4. 3 Нормативно-справочные материалы
  5. 4 Общий обзор
  6. 5 Соглашения о наименованиях
  7. 6 Исходный текст
  8. 7 Лексические соглашения
  9. 8 Типы
  10. 9 Преобразование и проверка типов
  11. 10 Исполняемый код и контексты исполнения
  12. 11 Выражения
  13. 12 Инструкции
  14. 13 Определение функции
  15. 14 Программа
  16. 15 Стандартные встроенные объекты ECMAScript
  17. 16 Ошибки
  18. Приложение A (информационное) Краткое описание грамматик
  19. Приложение В (информационное) Совместимость
  20. Приложение C (информационное) Строгий вариант языка ECMAScript
  21. Annex D (informative) Corrections and Clarifications in the 5th Edition with Possible 3rd Edition Compatibility Impact
  22. Annex E (informative) Additions and Changes in the 5th Edition that Introduce Incompatibilities with the 3rd Edition
  23. Bibliography

Содержание

  1. Введение
  2. 1 Область применения
  3. 2 Соответствие стандарту
  4. 3 Нормативно-справочные материалы
  5. 4 Общий обзор
    1. 4.1 Скрипты для Интернет
    2. 4.2 Общий обзор языка
      1. 4.2.1 Объекты
      2. 4.2.2 Строгий вариант языка ECMAScript
    3. 4.3 Определения
      1. 4.3.1 Тип
      2. 4.3.2 Примитивное значение
      3. 4.3.3 Объект
      4. 4.3.4 Конструктор
      5. 4.3.5 Прототип
      6. 4.3.6 Родной объект
      7. 4.3.7 Встроенный объект
      8. 4.3.8 Объект среды
      9. 4.3.9 Неопределенное значение (значение undefined)
      10. 4.3.10 Неопределенный тип (тип Undefined)
      11. 4.3.11 Пустое значение (значение null)
      12. 4.3.12 Тип Null
      13. 4.3.13 Булево значение
      14. 4.3.14 Тип Boolean
      15. 4.3.15 Объект Boolean
      16. 4.3.16 Строковое значение
      17. 4.3.17 Тип String
      18. 4.3.18 Объект String
      19. 4.3.19 Числовое значение
      20. 4.3.20 Тип Number
      21. 4.3.21 Объект Number
      22. 4.3.22 Бесконечность (Infinity)
      23. 4.3.23 Не число (NaN)
      24. 4.3.24 Функция
      25. 4.3.25 Встроенная функция
      26. 4.3.26 Свойство
      27. 4.3.27 Метод
      28. 4.3.28 Встроенный метод
      29. 4.3.29 Атрибут
      30. 4.3.30 Собственное свойство
      31. 4.3.31 Наследуемое свойство
  6. 5 Соглашения о наименованиях
    1. 5.1 Синтаксическая и лексическая грамматики
      1. 5.1.1 Контекстно-свободные грамматики
      2. 5.1.2 Лексическая грамматика и грамматика регулярных выражений
      3. 5.1.3 Строково-числовая грамматика
      4. 5.1.4 Синтаксическая грамматика
      5. 5.1.5 Грамматика JSON
      6. 5.1.6 Грамматическая нотация
    2. 5.2 Соглашения об алгоритмах
  7. 6 Исходный текст
  8. 7 Лексические соглашения
    1. 7.1 Юникодные символы управления форматом
    2. 7.2 Пробельные символы
    3. 7.3 Символы окончания строки
    4. 7.4 Комментарии
    5. 7.5 Токены
    6. 7.6 Имена идентификаторов и идентификаторы
      1. 7.6.1 Зарезервированные слова
        1. 7.6.1.1 Ключевые слова
        2. 7.6.1.2 Слова, зарезервированные для использования в будущем
    7. 7.7 Знаки пунктуации
    8. 7.8 Литералы
      1. 7.8.1 Литералы Null
      2. 7.8.2 Литералы Boolean
      3. 7.8.3 Числовые литералы
      4. 7.8.4 Строковые литералы
      5. 7.8.5 Литералы регулярного выражения
    9. 7.9 Правила автоматической подстановки точки с запятой
      1. 7.9.1 Rules of Automatic Semicolon Insertion
      2. 7.9.2 Примеры автоматической подстановки точки с запятой
  9. 8 Типы
    1. 8.1 Тип Undefined
    2. 8.2 Тип Null
    3. 8.3 Тип Boolean
    4. 8.4 Тип String
    5. 8.5 Тип Number
    6. 8.6 Тип Object
      1. 8.6.1 Атрибуты свойства
      2. 8.6.2 Внутренние свойства и методы объекта
    7. 8.7 ип спецификации Reference
      1. 8.7.1 GetValue (V)
      2. 8.7.2 PutValue (V, W)
    8. 8.8 Тип спецификации List
    9. 8.9 The Тип спецификации Completion
    10. 8.10 Типы спецификации Property Descriptor и Property Identifier
      1. 8.10.1 IsAccessorDescriptor ( Desc )
      2. 8.10.2 IsDataDescriptor ( Desc )
      3. 8.10.3 IsGenericDescriptor ( Desc )
      4. 8.10.4 FromPropertyDescriptor ( Desc )
      5. 8.10.5 ToPropertyDescriptor ( Obj )
    11. 8.11 Типы спецификации Lexical Environment и Environment Record
    12. 8.12 Алгоритмы для внутренних методов объектов
      1. 8.12.1 [[GetOwnProperty]] (P)
      2. 8.12.2 [[GetProperty]] (P)
      3. 8.12.3 [[Get]] (P)
      4. 8.12.4 [[CanPut]] (P)
      5. 8.12.5 [[Put]] ( P, V, Throw )
      6. 8.12.6 [[HasProperty]] (P)
      7. 8.12.7 [[Delete]] (P, Throw)
      8. 8.12.8 [[DefaultValue]] (hint)
      9. 8.12.9 [[DefineOwnProperty]] (P, Desc, Throw)
  10. 9 Преобразование и проверка типов
    1. 9.1 ToPrimitive
    2. 9.2 ToBoolean
    3. 9.3 ToNumber
      1. 9.3.1 ToNumber применительно к типу String
    4. 9.4 ToInteger
    5. 9.5 ToInt32: (Знаковое 32-битовое целое)
    6. 9.6 ToUint32: (Беззнаковое 32-битовое целое)
    7. 9.7 ToUint16: (Беззнаковое 16-битовое целое)
    8. 9.8 ToString
      1. 9.8.1 ToString применительно к типу Number
    9. 9.9 ToObject
    10. 9.10 CheckObjectCoercible
    11. 9.11 IsCallable
    12. 9.12 Алгоритм SameValue
  11. 10 Исполняемый код и контексты исполнения
    1. 10.1 Типы исполняемого кода
      1. 10.1.1 Код в строгом режиме
    2. 10.2 Лексическое Окружение
      1. 10.2.1 Записи окружений
        1. 10.2.1.1 Декларативные записи окружения
          1. 10.2.1.1.1 HasBinding(N)
          2. 10.2.1.1.2 CreateMutableBinding (N, D)
          3. 10.2.1.1.3 SetMutableBinding (N,V,S)
          4. 10.2.1.1.4 GetBindingValue(N,S)
          5. 10.2.1.1.5 DeleteBinding (N)
          6. 10.2.1.1.6 ImplicitThisValue()
          7. 10.2.1.1.7 CreateImmutableBinding (N)
          8. 10.2.1.1.8 InitializeImmutableBinding (N,V)
        2. 10.2.1.2 Объектные записи окружения
          1. 10.2.1.2.1 HasBinding(N)
          2. 10.2.1.2.2 CreateMutableBinding (N, D)
          3. 10.2.1.2.3 SetMutableBinding (N,V,S)
          4. 10.2.1.2.4 GetBindingValue(N,S)
          5. 10.2.1.2.5 DeleteBinding (N)
          6. 10.2.1.2.6 ImplicitThisValue()
      2. 10.2.2 Операции Лексического Окружения
        1. 10.2.2.1 GetIdentifierReference (lex, name, strict)
        2. 10.2.2.2 NewDeclarativeEnvironment (E)
        3. 10.2.2.3 NewObjectEnvironment (O, E)
      3. 10.2.3 Глобальное окружение
    3. 10.3 Контексты исполнения
      1. 10.3.1 Разрешение идентификатора
    4. 10.4 Установление контекста исполнения
      1. 10.4.1 Вход в глобальный код
        1. 10.4.1.1 Исходный глобальный контекст исполнения
      2. 10.4.2 Вход в Eval-код
        1. 10.4.2.1 Ограничения строгого режима
      3. 10.4.3 Вход в код функции
    5. 10.5 Инстанциирование привязки объявления
    6. 10.6 Объект аргументов
  12. 11 Выражения
    1. 11.1 Первичные выражения
      1. 11.1.1 Ключевое слово this
      2. 11.1.2 Ссылка на идентификатор
      3. 11.1.3 Ссылка на литерал
      4. 11.1.4 Инициализатор массива
      5. 11.1.5 Инициализатор объекта
      6. 11.1.6 Оператор группировки
    2. 11.2 Левосторонние выражения
      1. 11.2.1 Доступ к свойствам
      2. 11.2.2 Оператор new
      3. 11.2.3 Вызовы функции
      4. 11.2.4 Списки аргументов
      5. 11.2.5 Выражения функции
    3. 11.3 Постфиксные выражения
      1. 11.3.1 Постфиксный оператор инкремента
      2. 11.3.2 Постфиксный оператор декремента
    4. 11.4 Унарные операторы
      1. 11.4.1 Оператор delete
      2. 11.4.2 Оператор void
      3. 11.4.3 Оператор typeof
      4. 11.4.4 Префиксный оператор инкремента
      5. 11.4.5 Префиксный оператор декремента
      6. 11.4.6 Унарный оператор +
      7. 11.4.7 Унарный оператор -
      8. 11.4.8 Побитовый оператор НЕ ( ~ )
      9. 11.4.9 Логический оператор НЕ ( ! )
    5. 11.5 Мультипликативные операторы
      1. 11.5.1 Применение оператора *
      2. 11.5.2 Применение оператора /
      3. 11.5.3 Применение оператора %
    6. 11.6 Аддитивные операторы
      1. 11.6.1 Оператор сложения ( + )
      2. 11.6.2 Оператор вычитания ( - )
      3. 11.6.3 Применение аддитивных операторов к объектам типа Number
    7. 11.7 Операторы побитового сдвига
      1. 11.7.1 Оператор сдвига влево ( << )
      2. 11.7.2 Оператор знакового сдвига вправо ( >> )
      3. 11.7.3 Оператор беззнакового сдвига вправо ( >>> )
    8. 11.8 Операторы отношения
      1. 11.8.1 Оператор 'Меньше чем' ( < )
      2. 11.8.2 Оператор 'Больше чем' ( > )
      3. 11.8.3 Оператор 'Меньше или равно' ( <= )
      4. 11.8.4 Оператор 'Больше или равно' ( >= )
      5. 11.8.5 Алгоритм сравнения абстрактного отношения
      6. 11.8.6 Оператор instanceof
      7. 11.8.7 Оператор in
    9. 11.9 Операторы равенства
      1. 11.9.1 Оператор 'Равно' ( == )
      2. 11.9.2 Оператор 'Не равно' ( != )
      3. 11.9.3 Алгоритм сравнения абстрактного равенства
      4. 11.9.4 Оператор строгого равенства ( === )
      5. 11.9.5 Оператор строгого неравенства ( !== )
      6. 11.9.6 Алгоритм сравнения строгого равенства
    10. 11.10 Бинарные побитовые операторы
    11. 11.11 Бинарные логические операторы
    12. 11.12 Условный оператор ( ? : )
    13. 11.13 Операторы присваивания
      1. 11.13.1 Простое присваивание ( = )
      2. 11.13.2 Составное присваивание ( op= )
    14. 11.14 Оператор 'Запятая' ( , )
  13. 12 Инструкции
    1. 12.1 Блок
    2. 12.2 Инструкция переменной
      1. 12.2.1 Ограничения строгого режима
    3. 12.3 Пустая инструкция
    4. 12.4 Инструкция-выражение
    5. 12.5 Инструкция if
    6. 12.6 Инструкции итерации
      1. 12.6.1 Инструкция do-while
      2. 12.6.2 Инструкция while
      3. 12.6.3 Инструкция for
      4. 12.6.4 Инструкция for-in
    7. 12.7 Инструкция continue
    8. 12.8 Инструкция break
    9. 12.9 Инструкция return
    10. 12.10 Инструкция with
      1. 12.10.1 Ограничения строгого режима
    11. 12.11 Инструкция switch
    12. 12.12 Инструкции с метками
    13. 12.13 Инструкция throw
    14. 12.14 Инструкция try
      1. 12.14.1 Ограничения строгого режима
    15. 12.15 Инструкция debugger
  14. 13 Определение функции
    1. 13.1 Ограничения строгого режима
    2. 13.2 Создание объектов типа Function
      1. 13.2.1 [[Call]]
      2. 13.2.2 [[Construct]]
      3. 13.2.3 Объект типа Function
  15. 14 Программа
    1. 14.1 Директивные прологи и директива "Use Strict"
  16. 15 Стандартные встроенные объекты ECMAScript
    1. 15.1 Глобальный объект
      1. 15.1.1 Свойства-значения Глобального объекта
        1. 15.1.1.1 NaN (не-число)
        2. 15.1.1.2 Infinity (бесконечность)
        3. 15.1.1.3 undefined (неопределено)
      2. 15.1.2 Свойства-функции Глобального объекта
        1. 15.1.2.1 eval (x)
          1. 15.1.2.1.1 Прямой вызов функции Eval
        2. 15.1.2.2 parseInt (string , radix)
        3. 15.1.2.3 parseFloat (string)
        4. 15.1.2.4 isNaN (number)
        5. 15.1.2.5 isFinite (number)
      3. 15.1.3 Свойства-функции для обработки URI
        1. 15.1.3.1 decodeURI (encodedURI)
        2. 15.1.3.2 decodeURIComponent (encodedURIComponent)
        3. 15.1.3.3 encodeURI (uri)
        4. 15.1.3.4 encodeURIComponent (uriComponent)
      4. 15.1.4 Свойства-конструкторы Глобального объекта
        1. 15.1.4.1 Object ( . . . )
        2. 15.1.4.2 Function ( . . . )
        3. 15.1.4.3 Array ( . . . )
        4. 15.1.4.4 String ( . . . )
        5. 15.1.4.5 Boolean ( . . . )
        6. 15.1.4.6 Number ( . . . )
        7. 15.1.4.7 Date ( . . . )
        8. 15.1.4.8 RegExp ( . . . )
        9. 15.1.4.9 Error ( . . . )
        10. 15.1.4.10 EvalError ( . . . )
        11. 15.1.4.11 RangeError ( . . . )
        12. 15.1.4.12 ReferenceError ( . . . )
        13. 15.1.4.13 SyntaxError ( . . . )
        14. 15.1.4.14 TypeError ( . . . )
        15. 15.1.4.15 URIError ( . . . )
      5. 15.1.5 Другие свойства Глобального объекта
        1. 15.1.5.1 Math
        2. 15.1.5.2 JSON
    2. 15.2 Объекты Object
      1. 15.2.1 Вызов конструктора Object как функции
        1. 15.2.1.1 Object ( [ value ] )
      2. 15.2.2 Конструктор Object
        1. 15.2.2.1 new Object ( [ value ] )
      3. 15.2.3 Свойства конструктора Object
        1. 15.2.3.1 Object.prototype
        2. 15.2.3.2 Object.getPrototypeOf ( O )
        3. 15.2.3.3 Object.getOwnPropertyDescriptor ( O, P )
        4. 15.2.3.4 Object.getOwnPropertyNames ( O )
        5. 15.2.3.5 Object.create ( O [, Properties] )
        6. 15.2.3.6 Object.defineProperty ( O, P, Attributes )
        7. 15.2.3.7 Object.defineProperties ( O, Properties )
        8. 15.2.3.8 Object.seal ( O )
        9. 15.2.3.9 Object.freeze ( O )
        10. 15.2.3.10 Object.preventExtensions ( O )
        11. 15.2.3.11 Object.isSealed ( O )
        12. 15.2.3.12 Object.isFrozen ( O )
        13. 15.2.3.13 Object.isExtensible ( O )
        14. 15.2.3.14 Object.keys ( O )
      4. 15.2.4 Свойства объекта-прототипа Object
        1. 15.2.4.1 Object.prototype.constructor
        2. 15.2.4.2 Object.prototype.toString ( )
        3. 15.2.4.3 Object.prototype.toLocaleString ( )
        4. 15.2.4.4 Object.prototype.valueOf ( )
        5. 15.2.4.5 Object.prototype.hasOwnProperty (V)
        6. 15.2.4.6 Object.prototype.isPrototypeOf (V)
        7. 15.2.4.7 Object.prototype.propertyIsEnumerable (V)
      5. 15.2.5 Свойства экземпляров Object
    3. 15.3 Объекты Function
      1. 15.3.1 Вызов конструктора Function как функции
        1. 15.3.1.1 Function (p1, p2, … , pn, body)
      2. 15.3.2 Конструктор Function
        1. 15.3.2.1 new Function (p1, p2, … , pn, body)
      3. 15.3.3 Свойства конструктора Function
        1. 15.3.3.1 Function.prototype
        2. 15.3.3.2 Function.length
      4. 15.3.4 Свойства объекта-прототипа Function
        1. 15.3.4.1 Function.prototype.constructor
        2. 15.3.4.2 Function.prototype.toString ( )
        3. 15.3.4.3 Function.prototype.apply (thisArg, argArray)
        4. 15.3.4.4 Function.prototype.call (thisArg [ , arg1 [ , arg2, … ] ] )
        5. 15.3.4.5 Function.prototype.bind (thisArg [, arg1 [, arg2, …]])
          1. 15.3.4.5.1 [[Call]]
          2. 15.3.4.5.2 [[Construct]]
          3. 15.3.4.5.3 [[HasInstance]] (V)
      5. 15.3.5 Свойства экземпляров Function
        1. 15.3.5.1 length
        2. 15.3.5.2 prototype
        3. 15.3.5.3 [[HasInstance]] (V)
        4. 15.3.5.4 [[Get]] (P)
    4. 15.4 Объекты Array
      1. 15.4.1 Вызов конструктора Array как функции
        1. 15.4.1.1 Array ( [ item1 [ , item2 [ , … ] ] ] )
      2. 15.4.2 Конструктор Array
        1. 15.4.2.1 new Array ( [ item0 [ , item1 [ , … ] ] ] )
        2. 15.4.2.2 new Array (len)
      3. 15.4.3 Свойства конструктора Array
        1. 15.4.3.1 Array.prototype
        2. 15.4.3.2 Array.isArray ( arg )
      4. 15.4.4 Свойства объекта-прототипа Array
        1. 15.4.4.1 Array.prototype.constructor
        2. 15.4.4.2 Array.prototype.toString ( )
        3. 15.4.4.3 Array.prototype.toLocaleString ( )
        4. 15.4.4.4 Array.prototype.concat ( [ item1 [ , item2 [ , … ] ] ] )
        5. 15.4.4.5 Array.prototype.join (separator)
        6. 15.4.4.6 Array.prototype.pop ( )
        7. 15.4.4.7 Array.prototype.push ( [ item1 [ , item2 [ , … ] ] ] )
        8. 15.4.4.8 Array.prototype.reverse ( )
        9. 15.4.4.9 Array.prototype.shift ( )
        10. 15.4.4.10 Array.prototype.slice (start, end)
        11. 15.4.4.11 Array.prototype.sort (comparefn)
        12. 15.4.4.12 Array.prototype.splice (start, deleteCount [ , item1 [ , item2 [ , … ] ] ] )
        13. 15.4.4.13 Array.prototype.unshift ( [ item1 [ , item2 [ , … ] ] ] )
        14. 15.4.4.14 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
        15. 15.4.4.15 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
        16. 15.4.4.16 Array.prototype.every ( callbackfn [ , thisArg ] )
        17. 15.4.4.17 Array.prototype.some ( callbackfn [ , thisArg ] )
        18. 15.4.4.18 Array.prototype.forEach ( callbackfn [ , thisArg ] )
        19. 15.4.4.19 Array.prototype.map ( callbackfn [ , thisArg ] )
        20. 15.4.4.20 Array.prototype.filter ( callbackfn [ , thisArg ] )
        21. 15.4.4.21 Array.prototype.reduce ( callbackfn [ , initialValue ] )
        22. 15.4.4.22 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
      5. 15.4.5 Свойства экземпляров Array
        1. 15.4.5.1 [[DefineOwnProperty]] ( P, Desc, Throw )
        2. 15.4.5.2 length
    5. 15.5 Объекты String
      1. 15.5.1 Вызов конструктора String как функции
        1. 15.5.1.1 String ( [ value ] )
      2. 15.5.2 Конструктор String
        1. 15.5.2.1 new String ( [ value ] )
      3. 15.5.3 Свойства конструктора String
        1. 15.5.3.1 String.prototype
        2. 15.5.3.2 String.fromCharCode ( [ char0 [ , char1 [ , … ] ] ] )
      4. 15.5.4 Свойства объекта-прототипа String
        1. 15.5.4.1 String.prototype.constructor
        2. 15.5.4.2 String.prototype.toString ( )
        3. 15.5.4.3 String.prototype.valueOf ( )
        4. 15.5.4.4 String.prototype.charAt (pos)
        5. 15.5.4.5 String.prototype.charCodeAt (pos)
        6. 15.5.4.6 String.prototype.concat ( [ string1 [ , string2 [ , … ] ] ] )
        7. 15.5.4.7 String.prototype.indexOf (searchString, position)
        8. 15.5.4.8 String.prototype.lastIndexOf (searchString, position)
        9. 15.5.4.9 String.prototype.localeCompare (that)
        10. 15.5.4.10 String.prototype.match (regexp)
        11. 15.5.4.11 String.prototype.replace (searchValue, replaceValue)
        12. 15.5.4.12 String.prototype.search (regexp)
        13. 15.5.4.13 String.prototype.slice (start, end)
        14. 15.5.4.14 String.prototype.split (separator, limit)
        15. 15.5.4.15 String.prototype.substring (start, end)
        16. 15.5.4.16 String.prototype.toLowerCase ( )
        17. 15.5.4.17 String.prototype.toLocaleLowerCase ( )
        18. 15.5.4.18 String.prototype.toUpperCase ( )
        19. 15.5.4.19 String.prototype.toLocaleUpperCase ( )
        20. 15.5.4.20 String.prototype.trim ( )
      5. 15.5.5 Свойства экземпляров String
        1. 15.5.5.1 length
        2. 15.5.5.2 [[GetOwnProperty]] ( P )
    6. 15.6 Объекты Boolean
      1. 15.6.1 Вызов конструктора Boolean как функции
        1. 15.6.1.1 Boolean (value)
      2. 15.6.2 Конструктор Boolean
        1. 15.6.2.1 new Boolean (value)
      3. 15.6.3 Свойства конструктора Boolean
        1. 15.6.3.1 Boolean.prototype
      4. 15.6.4 Свойства объекта-прототипа Boolean
        1. 15.6.4.1 Boolean.prototype.constructor
        2. 15.6.4.2 Boolean.prototype.toString ( )
        3. 15.6.4.3 Boolean.prototype.valueOf ( )
      5. 15.6.5 Свойства экземпляров Boolean
    7. 15.7 Объекты Number
      1. 15.7.1 Вызов конструктора Number как функции
        1. 15.7.1.1 Number ( [ value ] )
      2. 15.7.2 Конструктор Number
        1. 15.7.2.1 new Number ( [ value ] )
      3. 15.7.3 Свойства конструктора Number
        1. 15.7.3.1 Number.prototype
        2. 15.7.3.2 Number.MAX_VALUE
        3. 15.7.3.3 Number.MIN_VALUE
        4. 15.7.3.4 Number.NaN
        5. 15.7.3.5 Number.NEGATIVE_INFINITY
        6. 15.7.3.6 Number.POSITIVE_INFINITY
      4. 15.7.4 Свойства объекта-прототипа Number
        1. 15.7.4.1 Number.prototype.constructor
        2. 15.7.4.2 Number.prototype.toString ( [ radix ] )
        3. 15.7.4.3 Number.prototype.toLocaleString()
        4. 15.7.4.4 Number.prototype.valueOf ( )
        5. 15.7.4.5 Number.prototype.toFixed (fractionDigits)
        6. 15.7.4.6 Number.prototype.toExponential (fractionDigits)
        7. 15.7.4.7 Number.prototype.toPrecision (precision)
      5. 15.7.5 Свойства экземпляров Number
    8. 15.8 Объект Math
      1. 15.8.1 Свойства-значения объекта Math
        1. 15.8.1.1 E
        2. 15.8.1.2 LN10
        3. 15.8.1.3 LN2
        4. 15.8.1.4 LOG2E
        5. 15.8.1.5 LOG10E
        6. 15.8.1.6 PI
        7. 15.8.1.7 SQRT1_2
        8. 15.8.1.8 SQRT2
      2. 15.8.2 Свойства-функции объекта Math
        1. 15.8.2.1 abs (x)
        2. 15.8.2.2 acos (x)
        3. 15.8.2.3 asin (x)
        4. 15.8.2.4 atan (x)
        5. 15.8.2.5 atan2 (y, x)
        6. 15.8.2.6 ceil (x)
        7. 15.8.2.7 cos (x)
        8. 15.8.2.8 exp (x)
        9. 15.8.2.9 floor (x)
        10. 15.8.2.10 log (x)
        11. 15.8.2.11 max ( [ value1 [ , value2 [ , … ] ] ] )
        12. 15.8.2.12 min ( [ value1 [ , value2 [ , … ] ] ] )
        13. 15.8.2.13 pow (x, y)
        14. 15.8.2.14 random ( )
        15. 15.8.2.15 round (x)
        16. 15.8.2.16 sin (x)
        17. 15.8.2.17 sqrt (x)
        18. 15.8.2.18 tan (x)
    9. 15.9 Объекты Date
      1. 15.9.1 Обзор объектов Date и определение абстрактных операторов
        1. 15.9.1.1 Значения времени и временной диапазон
        2. 15.9.1.2 Номер дня и время дня
        3. 15.9.1.3 Номер года
        4. 15.9.1.4 Номер месяца
        5. 15.9.1.5 Номер даты
        6. 15.9.1.6 День недели
        7. 15.9.1.7 Поправка на местное время
        8. 15.9.1.8 Поправка на летнее время
        9. 15.9.1.9 Местное время
        10. 15.9.1.10 Часы, минуты, секунды и миллисекунды
        11. 15.9.1.11 MakeTime (hour, min, sec, ms)
        12. 15.9.1.12 MakeDay (year, month, date)
        13. 15.9.1.13 MakeDate (day, time)
        14. 15.9.1.14 TimeClip (time)
        15. 15.9.1.15 Строковый формат "дата и время"
          1. 15.9.1.15.1 Увеличенное количество лет
      2. 15.9.2 Вызов конструктора Date как функции
        1. 15.9.2.1 Date ( [ year [, month [, date [, hours [, minutes [, seconds [, ms ] ] ] ] ] ] ] )
      3. 15.9.3 Конструктор Date
        1. 15.9.3.1 new Date (year, month [, date [, hours [, minutes [, seconds [, ms ] ] ] ] ] )
        2. 15.9.3.2 new Date (value)
        3. 15.9.3.3 new Date ( )
      4. 15.9.4 Свойства конструктора Date
        1. 15.9.4.1 Date.prototype
        2. 15.9.4.2 Date.parse (string)
        3. 15.9.4.3 Date.UTC (year, month [, date [, hours [, minutes [, seconds [, ms ] ] ] ] ])
        4. 15.9.4.4 Date.now ( )
      5. 15.9.5 Свойства объекта-прототипа Date
        1. 15.9.5.1 Date.prototype.constructor
        2. 15.9.5.2 Date.prototype.toString ( )
        3. 15.9.5.3 Date.prototype.toDateString ( )
        4. 15.9.5.4 Date.prototype.toTimeString ( )
        5. 15.9.5.5 Date.prototype.toLocaleString ( )
        6. 15.9.5.6 Date.prototype.toLocaleDateString ( )
        7. 15.9.5.7 Date.prototype.toLocaleTimeString ( )
        8. 15.9.5.8 Date.prototype.valueOf ( )
        9. 15.9.5.9 Date.prototype.getTime ( )
        10. 15.9.5.10 Date.prototype.getFullYear ( )
        11. 15.9.5.11 Date.prototype.getUTCFullYear ( )
        12. 15.9.5.12 Date.prototype.getMonth ( )
        13. 15.9.5.13 Date.prototype.getUTCMonth ( )
        14. 15.9.5.14 Date.prototype.getDate ( )
        15. 15.9.5.15 Date.prototype.getUTCDate ( )
        16. 15.9.5.16 Date.prototype.getDay ( )
        17. 15.9.5.17 Date.prototype.getUTCDay ( )
        18. 15.9.5.18 Date.prototype.getHours ( )
        19. 15.9.5.19 Date.prototype.getUTCHours ( )
        20. 15.9.5.20 Date.prototype.getMinutes ( )
        21. 15.9.5.21 Date.prototype.getUTCMinutes ( )
        22. 15.9.5.22 Date.prototype.getSeconds ( )
        23. 15.9.5.23 Date.prototype.getUTCSeconds ( )
        24. 15.9.5.24 Date.prototype.getMilliseconds ( )
        25. 15.9.5.25 Date.prototype.getUTCMilliseconds ( )
        26. 15.9.5.26 Date.prototype.getTimezoneOffset ( )
        27. 15.9.5.27 Date.prototype.setTime (time)
        28. 15.9.5.28 Date.prototype.setMilliseconds (ms)
        29. 15.9.5.29 Date.prototype.setUTCMilliseconds (ms)
        30. 15.9.5.30 Date.prototype.setSeconds (sec [, ms ] )
        31. 15.9.5.31 Date.prototype.setUTCSeconds (sec [, ms ] )
        32. 15.9.5.32 Date.prototype.setMinutes (min [, sec [, ms ] ] )
        33. 15.9.5.33 Date.prototype.setUTCMinutes (min [, sec [, ms ] ] )
        34. 15.9.5.34 Date.prototype.setHours (hour [, min [, sec [, ms ] ] ] )
        35. 15.9.5.35 Date.prototype.setUTCHours (hour [, min [, sec [, ms ] ] ] )
        36. 15.9.5.36 Date.prototype.setDate (date)
        37. 15.9.5.37 Date.prototype.setUTCDate (date)
        38. 15.9.5.38 Date.prototype.setMonth (month [, date ] )
        39. 15.9.5.39 Date.prototype.setUTCMonth (month [, date ] )
        40. 15.9.5.40 Date.prototype.setFullYear (year [, month [, date ] ] )
        41. 15.9.5.41 Date.prototype.setUTCFullYear (year [, month [, date ] ] )
        42. 15.9.5.42 Date.prototype.toUTCString ( )
        43. 15.9.5.43 Date.prototype.toISOString ( )
        44. 15.9.5.44 Date.prototype.toJSON ( key )
      6. 15.9.6 Свойства экземпляров Date
    10. 15.10 Объекты RegExp (регулярное выражение)
      1. 15.10.1 Шаблоны
      2. 15.10.2 Семантика шаблонов
        1. 15.10.2.1 Обозначения
        2. 15.10.2.2 Шаблон (Pattern)
        3. 15.10.2.3 Дизъюнкция (Disjunction)
        4. 15.10.2.4 Альтернатива (Alternative)
        5. 15.10.2.5 Элемент (Term)
        6. 15.10.2.6 Утверждение (Assertion)
        7. 15.10.2.7 Квантификатор (Quantifier)
        8. 15.10.2.8 Атом (Atom)
        9. 15.10.2.9 AtomEscape
        10. 15.10.2.10 CharacterEscape
        11. 15.10.2.11 DecimalEscape
        12. 15.10.2.12 CharacterClassEscape
        13. 15.10.2.13 CharacterClass
        14. 15.10.2.14 ClassRanges
        15. 15.10.2.15 NonemptyClassRanges
        16. 15.10.2.16 NonemptyClassRangesNoDash
        17. 15.10.2.17 ClassAtom
        18. 15.10.2.18 ClassAtomNoDash
        19. 15.10.2.19 ClassEscape
      3. 15.10.3 Вызов конструктора RegExp как функции
        1. 15.10.3.1 RegExp(pattern, flags)
      4. 15.10.4 The Конструктор RegExp
        1. 15.10.4.1 new RegExp(pattern, flags)
      5. 15.10.5 Свойства конструктора RegExp
        1. 15.10.5.1 RegExp.prototype
      6. 15.10.6 Свойства объекта-прототипа RegExp
        1. 15.10.6.1 RegExp.prototype.constructor
        2. 15.10.6.2 RegExp.prototype.exec(string)
        3. 15.10.6.3 RegExp.prototype.test(string)
        4. 15.10.6.4 RegExp.prototype.toString()
      7. 15.10.7 Свойства экземпляров RegExp
        1. 15.10.7.1 source
        2. 15.10.7.2 global
        3. 15.10.7.3 ignoreCase
        4. 15.10.7.4 multiline
        5. 15.10.7.5 lastIndex
    11. 15.11 Объекты Error
      1. 15.11.1 Вызов конструктора Error как функции
        1. 15.11.1.1 Error (message)
      2. 15.11.2 Конструктор Error
        1. 15.11.2.1 new Error (message)
      3. 15.11.3 Свойства конструктора Error
        1. 15.11.3.1 Error.prototype
      4. 15.11.4 Свойства объекта-прототипа Error
        1. 15.11.4.1 Error.prototype.constructor
        2. 15.11.4.2 Error.prototype.name
        3. 15.11.4.3 Error.prototype.message
        4. 15.11.4.4 Error.prototype.toString ( )
      5. 15.11.5 Свойства экземпляров Error
      6. 15.11.6 Собственные типы ошибок, используемые в данном стандарте
        1. 15.11.6.1 EvalError
        2. 15.11.6.2 RangeError
        3. 15.11.6.3 ReferenceError
        4. 15.11.6.4 SyntaxError
        5. 15.11.6.5 TypeError
        6. 15.11.6.6 URIError
      7. 15.11.7 Структура объекта NativeError
        1. 15.11.7.1 Вызов конструкторов NativeError как функций
        2. 15.11.7.2 NativeError (message)
        3. 15.11.7.3 Конструкторы NativeError
        4. 15.11.7.4 New NativeError (message)
        5. 15.11.7.5 Свойства конструкторов NativeError
        6. 15.11.7.6 NativeError.prototype
        7. 15.11.7.7 Свойства объектов-прототипов NativeError
        8. 15.11.7.8 NativeError.prototype.constructor
        9. 15.11.7.9 NativeError.prototype.name
        10. 15.11.7.10 NativeError.prototype.message
        11. 15.11.7.11 Свойства экземпляров NativeError
    12. 15.12 Объект JSON
      1. 15.12.1 Грамматика JSON
        1. 15.12.1.1 Лексическая грамматика JSON
        2. 15.12.1.2 Синтаксическая грамматика JSON
      2. 15.12.2 parse ( text [ , reviver ] )
      3. 15.12.3 stringify ( value [ , replacer [ , space ] ] )
  17. 16 Ошибки
  18. Приложение A (информационное) Краткое описание грамматик
    1. A.1 Лексическая грамматика
    2. A.2 Преобразования чисел
    3. A.3 Выражения
    4. A.4 Инструкции
    5. A.5 Функции и программы
    6. A.6 Классы символов URI
    7. A.7 Регулярные выражения
    8. A.8 JSON
      1. A.8.1 Лексическая грамматика JSON
      2. A.8.2 Синтаксическая грамматика JSON
  19. Приложение В (информационное) Совместимость
    1. B.1 Дополнительный синтаксис
      1. B.1.1 Числовые литералы
      2. B.1.2 Строковые литералы
    2. B.2 Дополнительные свойства
      1. B.2.1 escape (string)
      2. B.2.2 unescape (string)
      3. B.2.3 String.prototype.substr (start, length)
      4. B.2.4 Date.prototype.getYear ( )
      5. B.2.5 Date.prototype.setYear (year)
      6. B.2.6 Date.prototype.toGMTString ( )
  20. Приложение C (информационное) Строгий вариант языка ECMAScript
  21. Annex D (informative) Corrections and Clarifications in the 5th Edition with Possible 3rd Edition Compatibility Impact
  22. Annex E (informative) Additions and Changes in the 5th Edition that Introduce Incompatibilities with the 3rd Edition
  23. Список использованных источников

ЛИЦЕНЗИЯ

Разрешается копировать и передавать третьим лицам данный документ, а также разрешается делать, копировать, публиковать и распространять полностью или частично без каких-либо ограничений производные работы, комментирующие или как-либо иначе его поясняющие или содействующие в его реализации, при условии включения во все эти копии и производные работы данного уведомления об авторском праве. Однако внесение каких-либо изменений непосредственно в настоящий документ запрещено, включая удаление данного уведомления об авторском праве или упоминание Ecma International, кроме как с целью разработки документа или работы, подготавливаемых организацией Ecma International.

На стадии стандартизации выдаются ограниченные разрешения, которые организация Ecma International или ее преемники или правопреемники не будут отменять в течение этого времени.

Настоящий документ и содержащаяся в нём информация предоставляются на условиях «КАК ЕСТЬ», и ECMA INTERNATIONAL ОТКАЗЫВАЕТСЯ ОТ ГАРАНТИЙ, ПРЯМЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, СРЕДИ ПРОЧЕГО, ГАРАНТИЮ ТОГО, ЧТО ИСПОЛЬЗОВАНИЕ СОДЕРЖАЩЕЙСЯ В НАСТОЯЩЕМ ДОКУМЕНТЕ ИНФОРМАЦИИ НЕ НАРУШИТ ЧЬИХ-ЛИБО ПРАВ СОБСТВЕННОСТИ, ИЛИ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ ИЛИ ПРИГОДНОСТИ ДЛЯ КАКОГО-ЛИБО КОНКРЕТНОГО ПРИМЕНЕНИЯ.