Для целей этого документа применяются следующие термины и определения.
implementation-approximated
implementation-defined
host-defined
type
primitive value
object
constructor
prototype
ordinary object
exotic object
standard object
built-in object
undefined value
Undefined type
null value
Null type
Boolean value
Boolean type
Boolean object
String value
String type
String object
Number value
Number type
Number object
Infinity
NaN
BigInt value
BigInt type
BigInt object
Symbol value
Symbol type
Symbol object
function
built-in function
property
method
built-in method
attribute
own property
inherited property
4.4.1 implementation-approximated
Приближенное к реализации средство определяется полностью или частично внешним источником, но имеет рекомендованное идеальное поведение в этой спецификации
4.4.2 implementation-defined
Средство, определяемое реализацией, определяется полностью или частично внешним источником в этой спецификации
4.4.3 host-defined
То же, что и в зависимости от реализации
Редакционно смотри пункт 4.2.
4.4.4 type
Набор значений данных, как определено в разделе 6
4.4.5 primitive value
Член одного из типов Undefined, Null, Boolean, Number, BigInt, Symbol или String, как определено в разделе 6
Примитивное значение — это элемент данных, который представлен непосредственно на самом низком уровне реализации языка.
4.4.6 object
Член типа Object
Объект представляет собой набор свойств и имеет единственный объект-прототип. Прототипом может быть нулевое значение.
4.4.7 constructor
Функциональный объект, который создает и инициализирует объекты
Значение свойства "prototype"
конструктора — это объект-прототип, который используется для реализации наследования и общих свойств.
4.4.8 prototype
Объект, который предоставляет общие свойства для других объектов
Когда конструктор создает объект, этот объект неявно ссылается на свойство "prototype"
конструктора с целью разрешения ссылок на свойства. На свойство "prototype"
конструктора можно ссылаться с помощью программного выражения constructor.prototype
, а свойства, добавленные к прототипу объекта, совместно используются посредством наследования всеми объектами, использующими прототип. В качестве альтернативы новый объект может быть создан с явно указанным прототипом с помощью встроенной функции Object.create
.
4.4.9 ordinary object
Объект, который имеет поведение по умолчанию для основных внутренних методов, которые должны поддерживаться всеми объектами
4.4.10 exotic object
Объект, который не имеет поведения по умолчанию для одного или нескольких основных внутренних методов
Любой объект, который не является обычным объектом, является экзотическим объектом.
4.4.11 standard object
Объект, семантика которого определяется данной спецификацией
4.4.12 built-in object
Встроенный объект — это объект, указанный и предоставляемый реализацией ECMAScript
Стандартные встроенные объекты определены в этой спецификации. Реализация ECMAScript может определять и предоставлять дополнительные виды встроенных объектов. Встроенный конструктор (built-in constructor) — это встроенный объект, который также является конструктором.
4.4.13 undefined value
Примитивное значение, используемое, когда переменной не было присвоено значение
4.4.14 Undefined type
Тип, единственным значением которого является неопределенное значение — undefined
4.4.15 null value
Примитивное значение, которое представляет преднамеренное отсутствие какого-либо значения объекта
4.4.16 Null type
Тип, единственным значением которого является null значение
4.4.17 Boolean value
Член логического типа Boolean
Есть только два логических значения: true(истина) и false(ложь).
4.4.18 Boolean type
Тип, состоящий из примитивных значений true и false
4.4.19 Boolean object
Член типа Object, который является экземпляром стандартного встроенного логического Boolean конструктора
Логический (Boolean) объект создается с помощью логического конструктора в новом выражении new
, предоставляя логическое значение в качестве аргумента. Результирующий объект имеет внутренний слот, значением которого является логическое значение. Логический объект может быть приведен к логическому значению.
4.4.20 String value
Примитивное значение, которое представляет собой конечную упорядоченную последовательность из нуля или более 16-битных целочисленных значений без знака
Значение String является членом типа String. Каждое целочисленное значение в последовательности обычно представляет собой одну 16-битную единицу текста UTF-16. Однако ECMAScript не накладывает никаких ограничений или требований на значения, за исключением того, что они должны быть 16-битными целыми числами без знака.
4.4.21 String type
Набор всех возможных значений String
4.4.22 String object
Член типа Object, который является экземпляром стандартного встроенного конструктора String
Объект String создается с помощью конструктора String в новом выражении new
, передавая значение String в качестве аргумента. Результирующий объект имеет внутренний слот, значением которого является значение String. Объект String может быть приведен к значению String путем вызова конструктора String как функции (22.1.1.1).
4.4.23 Number value
Примитивное значение, соответствующее значению IEEE 754-2019 в 64-битном двоичном формате двойной точности
Числовое значение является членом числового типа и является прямым представлением числа.
4.4.24 Number type
Набор всех возможных числовых значений, включая специальное значение «Not-a-Number» (NaN), положительную бесконечность и отрицательную бесконечность
4.4.25 Number object
Член типа Object, который является экземпляром стандартного встроенного конструктора Number
Объект Number создается с помощью конструктора Number в новом выражении new
, передавая значение Number в качестве аргумента. Результирующий объект имеет внутренний слот, значением которого является значение Number. Объект Number может быть приведен к значению Number путем вызова конструктора Number как функции (21.1.1.1).
4.4.26 Infinity
Числовое значение, которое является положительным бесконечным числовым значением
4.4.27 NaN
Числовое значение, которое является значением IEEE 754-2019 «Not-a-Number».
4.4.28 BigInt value
Примитивное значение, соответствующее целочисленному значению произвольной точности
4.4.29 BigInt type
Набор всех возможных значений BigInt
4.4.30 BigInt object
Член типа Object, являющийся экземпляром стандартного встроенного конструктора BigInt
4.4.31 Symbol value
Примитивное значение, представляющее уникальный ключ свойства не String Object
4.4.32 Symbol type
Набор всех возможных значений символов
4.4.33 Symbol object
Член типа Object, который является экземпляром стандартного встроенного конструктора Symbol
4.4.34 function
Член типа Object, который может быть вызван как подпрограмма
Помимо свойств, функция содержит исполняемый код и состояние, определяющие ее поведение при вызове. Код функции может быть написан или не написан на ECMAScript.
4.4.35 built-in function
Встроенный объект, который является функцией
Примеры встроенных функций включают parseInt
и Math.exp
. Хост или реализация могут предоставлять дополнительные встроенные функции, которые не описаны в этой спецификации.
4.4.36 property
Часть объекта, которая связывает ключ (либо строковое значение String, либо значение символа Symbol) и значение
В зависимости от формы свойства значение может быть представлено либо непосредственно как значение данных (примитивное значение, объект или объект функции), либо косвенно парой функций доступа.
4.4.37 method
Функция, которая является значением свойства
Когда функция вызывается как метод объекта, объект передается функции как значение this.
4.4.38 built-in method
Метод, который является встроенной функцией
Стандартные встроенные методы определены в этой спецификации. Хост или реализация могут предоставлять дополнительные встроенные методы, которые не описаны в этой спецификации.
4.4.39 attribute
Внутреннее значение, определяющее некоторую характеристику свойства
4.4.40 own property
Свойство, которое непосредственно содержится в его объекте
4.4.41 inherited property
Свойство объекта, которое не является собственным свойством, но является свойством (собственным или унаследованным) прототипа объекта
Информационные ссылки
Стандарт ECMAScript — Раздел «4 Overview» — https://tc39.es/ecma262/#sec-overview
Стандарт ECMAScript — Раздел «4.4 Terms and Definitions» — https://tc39.es/ecma262/#sec-terms-and-definitions