A named class expression is a class definition evaluated as an expression where the class is explicitly assigned an identifier. Unlike an anonymous class expression, this identifier creates a local binding strictly within the class’s own lexical scope, dictating how the class references itself internally and defining its internalDocumentation Index
Fetch the complete documentation index at: https://docs.syntblaze.com/llms.txt
Use this file to discover all available pages before exploring further.
[[Name]] record.
Technical Characteristics
Lexical Scoping of the Identifier The identifier assigned to the class (InternalIdentifier) is only bound within the class body. It is not added to the enclosing lexical environment. Attempting to reference the internal identifier outside of the class body will result in a ReferenceError.
The name Property
When a class expression is named, the JavaScript engine assigns the internal identifier to the class’s name property. The outer variable binding (VariableBinding) does not infer its name onto the class if the internal identifier is present.
Immutability
Classes are implicitly executed in strict mode. The internal binding created by the named class expression is immutable. Any attempt to reassign the internal identifier from within the class body will throw a TypeError.
Evaluation and Hoisting
Named class expressions are evaluated at runtime when the execution context reaches the expression. Unlike class declarations, they are not hoisted. The outer variable binding follows the hoisting rules of its declaration keyword (const, let, or var), but the class itself remains uninitialized until evaluation.
Behavior Visualization
Master JavaScript with Deep Grasping Methodology!Learn More





