4.4 Terms and Definitions
For the purposes of this document, the following terms and definitions apply.
4.4.1 implementation-approximated
an
4.4.2 implementation-defined
an
4.4.3 host-defined
same as
Editorially, see clause
4.4.4 type
set of data values as defined in clause
4.4.5 primitive value
member of one of the types Undefined, Null, Boolean, Number, BigInt, Symbol, or String as defined in clause
A primitive value is a datum that is represented directly at the lowest level of the language implementation.
4.4.6 object
member of the type Object
An object is a collection of properties and has a single prototype object. The prototype may be
4.4.7 constructor
The value of a
4.4.8 prototype
object that provides shared properties for other objects
When a constructor.prototype
, and properties added to an object's prototype are shared, through inheritance, by all objects sharing the prototype. Alternatively, a new object may be created with an explicitly specified prototype by using the Object.create
built-in function.
4.4.9 ordinary object
object that has the default behaviour for the essential internal methods that must be supported by all objects
4.4.10 exotic object
object that does not have the default behaviour for one or more of the essential internal methods
Any object that is not an
4.4.11 standard object
object whose semantics are defined by this specification
4.4.12 built-in object
object specified and supplied by an ECMAScript implementation
Standard built-in objects are defined in this specification. An ECMAScript implementation may specify and supply additional kinds of built-in objects.
4.4.13 undefined value
primitive value used when a variable has not been assigned a value
4.4.14 Undefined type
type whose sole value is the
4.4.15 null value
primitive value that represents the intentional absence of any object value
4.4.16 Null type
type whose sole value is the
4.4.17 Boolean value
member of the
There are only two Boolean values,
4.4.18 Boolean type
type consisting of the primitive values
4.4.19 Boolean object
member of the
A Boolean object is created by using the Boolean new
expression, supplying a Boolean value as an argument. The resulting object has an internal slot whose value is the Boolean value. A Boolean object can be coerced to a Boolean value.
4.4.20 String value
primitive value that is a
A String value is a member of the
4.4.21 String type
set of all possible String values
4.4.22 String object
member of the
A String object is created by using the String new
expression, supplying a String value as an argument. The resulting object has an internal slot whose value is the String value. A String object can be coerced to a String value by calling the String
4.4.23 Number value
primitive value corresponding to a double-precision 64-bit binary format
A Number value is a member of the
4.4.24 Number type
set of all possible Number values including the special “Not-a-Number” (NaN) value, positive infinity, and negative infinity
4.4.25 Number object
member of the
A Number object is created by using the Number new
expression, supplying a Number value as an argument. The resulting object has an internal slot whose value is the Number value. A Number object can be coerced to a Number value by calling the Number
4.4.26 Infinity
Number value that is the positive infinite Number value
4.4.27 NaN
Number value that is an
4.4.28 BigInt value
primitive value corresponding to an arbitrary-precision
4.4.29 BigInt type
set of all possible BigInt values
4.4.30 BigInt object
member of the
4.4.31 Symbol value
primitive value that represents a unique, non-String Object
4.4.32 Symbol type
set of all possible Symbol values
4.4.33 Symbol object
member of the
4.4.34 function
member of the
In addition to its properties, a function contains executable code and state that determine how it behaves when invoked. A function's code may or may not be written in ECMAScript.
4.4.35 built-in function
built-in object that is a function
Examples of built-in functions include parseInt
and Math.exp
. A
4.4.36 built-in constructor
built-in function that is a
Examples of built-in Object
and Function
. A
4.4.37 property
part of an object that associates a key (either a String value or a Symbol value) and a value
Depending upon the form of the property the value may be represented either directly as a data value (a primitive value, an object, or a
4.4.38 method
function that is the value of a property
When a function is called as a method of an object, the object is passed to the function as its
4.4.39 built-in method
method that is a built-in function
Standard built-in methods are defined in this specification. A
4.4.40 attribute
internal value that defines some characteristic of a property
4.4.41 own property
property that is directly contained by its object
4.4.42 inherited property
property of an object that is not an own property but is a property (either own or inherited) of the object's prototype