📘 قراءة كتاب ECMAScript® 2015 Language Specification أونلاين
مواصفات اللغة ECMAScript® 2015
إشعار حقوق الطبع
والنشر © 2015 Ecma International
يجوز نسخ هذا المستند ونشره وتوزيعه على الآخرين ، ويمكن إعداد بعض الأعمال المشتقة منه ونسخها ونشرها وتوزيعها ، كليًا أو جزئيًا ، شريطة أن يكون إشعار حقوق النشر أعلاه وحقوق النشر هذه يتم تضمين الترخيص وإخلاء المسؤولية في جميع هذه النسخ والأعمال المشتقة. الأعمال المشتقة الوحيدة المسموح بها بموجب ترخيص حقوق الطبع والنشر وإخلاء المسؤولية هي:
(1) الأعمال التي تتضمن كل هذا المستند أو جزء منه بغرض تقديم تعليق أو شرح (مثل نسخة مشروحة من المستند) ،
(2) الأعمال التي تدمج كل هذا المستند أو جزء منه لغرض دمج الميزات التي توفر إمكانية الوصول ،
(3) ترجمات هذه الوثيقة إلى لغات أخرى غير الإنجليزية وإلى صيغ مختلفة و
(4) يعمل من خلال الاستفادة من هذه المواصفات في منتجات مطابقة قياسية من خلال تنفيذ (على سبيل المثال عن طريق النسخ واللصق كليًا أو جزئيًا) الوظيفة الموجودة فيها.
ومع ذلك ، لا يجوز تعديل محتوى هذا المستند بأي شكل من الأشكال ، بما في ذلك إزالة إشعار حقوق النشر أو الإشارات إلى Ecma International ، باستثناء ما هو مطلوب لترجمته إلى لغات أخرى غير الإنجليزية أو إلى تنسيق مختلف.
النسخة الرسمية لوثيقة Ecma International هي النسخة الإنجليزية على موقع Ecma International. في حالة وجود تناقضات بين النسخة المترجمة والنسخة الرسمية ، يتم الاحتكام إلى النسخة الرسمية.
الأذونات المحدودة الممنوحة أعلاه دائمة ولن يتم إلغاؤها من قبل Ecma International أو خلفائها أو المتنازل لهم.
يتم توفير هذا المستند والمعلومات الواردة فيه على أساس "كما هي" وتخلي شركة ECMA الدولية مسؤوليتها عن جميع الضمانات ، الصريحة أو الضمنية ، بما في ذلك على سبيل المثال لا الحصر أي ضمان بأن استخدام المعلومات الواردة هنا لن ينتهك أي حقوق ملكية أو أي حقوق ضمنية ضمانات القابلية للتسويق أو الملاءمة لغرض معين. "
ترخيص البرنامج
جميع البرامج الواردة في هذا المستند ("البرنامج)" محمية بموجب حقوق النشر ويتم توفيرها بموجب "ترخيص BSD" ، المضمن أدناه. قد يخضع هذا البرنامج لحقوق طرف ثالث (حقوق من أطراف أخرى غير Ecma International) ، بما في ذلك حقوق براءات الاختراع ، ولا يتم منح أي تراخيص بموجب حقوق الطرف الثالث هذه بموجب هذا الترخيص حتى إذا كان الطرف الثالث المعني عضوًا في Ecma International. اطلع على مدونة قواعد السلوك الخاصة بشركة ECMA في الأمور المتعلقة ببراءات الاختراع والمتوفرة على http://www.ecma-international.org/memento/codeofconduct.htm للحصول على معلومات تتعلق بترخيص مطالبات براءات الاختراع المطلوبة لتنفيذ معايير ECMA الدولية *.
يُسمح بإعادة التوزيع والاستخدام في أشكال المصدر والثنائية ، مع أو بدون تعديل ، بشرط استيفاء الشروط التالية:
1. يجب أن تحتفظ عمليات إعادة توزيع الكود المصدري بإشعار حقوق النشر أعلاه وقائمة الشروط هذه وإخلاء المسؤولية التالي.
2. إعادة التوزيع في شكل ثنائي يجب أن يعيد إنتاج إشعار حقوق النشر أعلاه ، وقائمة الشروط هذه وإخلاء المسؤولية التالي في الوثائق و / أو المواد الأخرى المقدمة مع التوزيع.
3. لا يجوز استخدام اسم المؤلفين أو Ecma International للمصادقة على المنتجات المشتقة من هذا البرنامج أو الترويج لها دون إذن كتابي مسبق محدد.
يتم توفير هذا البرنامج من قبل شركة ECMA الدولية "كما هي" ويتم التنازل عن أي ضمانات صريحة أو ضمنية ، بما في ذلك ، على سبيل المثال لا الحصر ، الضمانات الضمنية الخاصة بقابلية التسويق والملاءمة لغرض معين. لن تتحمل شركة ECMA International بأي حال من الأحوال المسؤولية عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو خاصة أو نموذجية أو تبعية (بما في ذلك ، على سبيل المثال لا الحصر ، شراء سلع أو خدمات بديلة أو فقدان الاستخدام أو البيانات أو الأرباح أو الخسائر ) مهما كان السبب وفي أي نظرية للمسؤولية ، سواء كان ذلك في العقد أو المسؤولية الصارمة أو الضرر (بما في ذلك الإهمال أو غير ذلك) الذي ينشأ بأي طريقة من طريقة استخدام هذا البرنامج ، حتى لو تم إخطار هذا الاحتمال.
Contents Page
1 Scope .............................................................................................................................................1
2 Conformance .................................................................................................................................1
3 Normative references ....................................................................................................................1
4 Overview ........................................................................................................................................1
4.1 Web Scripting ................................................................................................................................2
4.2 ECMAScript Overview ...................................................................................................................2
4.2.1 Objects...........................................................................................................................................3
4.2.2 The Strict Variant of ECMAScript .................................................................................................4
4.3 Terms and definitions ...................................................................................................................5
4.4 Organization of This Specification ...............................................................................................8
5 Notational Conventions ................................................................................................................8
5.1 Syntactic and Lexical Grammars ..................................................................................................8
5.1.1 Context-Free Grammars................................................................................................................8
5.1.2 The Lexical and RegExp Grammars .............................................................................................9
5.1.3 The Numeric String Grammar .......................................................................................................9
5.1.4 The Syntactic Grammar ................................................................................................................9
5.1.5 Grammar Notation ....................................................................................................................... 10
5.2 Algorithm Conventions ............................................................................................................... 14
5.3 Static Semantic Rules ................................................................................................................. 16
6 ECMAScript Data Types and Values .......................................................................................... 16
6.1 ECMAScript Language Types ..................................................................................................... 16
6.1.1 The Undefined Type .................................................................................................................... 16
6.1.2 The Null Type............................................................................................................................... 17
6.1.3 The Boolean Type ....................................................................................................................... 17
6.1.4 The String Type ........................................................................................................................... 17
6.1.5 The Symbol Type......................................................................................................................... 17
6.1.6 The Number Type ........................................................................................................................ 18
6.1.7 The Object Type .......................................................................................................................... 19
6.2 ECMAScript Specification Types ................................................................................................ 29
6.2.1 The List and Record Specification Type .................................................................................... 29
6.2.2 The Completion Record Specification Type .............................................................................. 30
6.2.3 The Reference Specification Type .............................................................................................. 31
6.2.4 The Property Descriptor Specification Type .............................................................................. 33
6.2.5 The Lexical Environment and Environment Record Specification Types ................................ 35
6.2.6 Data Blocks ................................................................................................................................. 35
7 Abstract Operations .................................................................................................................... 36
7.1 Type Conversion ......................................................................................................................... 36
7.1.1 ToPrimitive ( input [, PreferredType] ) ........................................................................................ 36
7.1.2 ToBoolean ( argument ) .............................................................................................................. 37
7.1.3 ToNumber ( argument ) ............................................................................................................... 38
7.1.4 ToInteger ( argument ) ................................................................................................................ 40
7.1.5 ToInt32 ( argument ) .................................................................................................................... 40
7.1.6 ToUint32 ( argument ) ................................................................................................................. 41
7.1.7 ToInt16 ( argument ) .................................................................................................................... 41
7.1.8 ToUint16 ( argument ) ................................................................................................................. 41
7.1.9 ToInt8 ( argument ) ...................................................................................................................... 41
7.1.10 ToUint8 ( argument ) ................................................................................................................... 42
7.1.11 ToUint8Clamp ( argument ) ......................................................................................................... 42
7.1.12 ToString ( argument ) .................................................................................................................. 42
iv © Ecma International 2015
ToObject 7.1.13 ( argument ) ................................................................................................................. 43
7.1.14 ToPropertyKey ( argument ) ....................................................................................................... 44
7.1.15 ToLength ( argument ) ................................................................................................................ 44
7.1.16 CanonicalNumericIndexString ( argument ) .............................................................................. 44
7.2 Testing and Comparison Operations ......................................................................................... 45
7.2.1 RequireObjectCoercible ( argument ) ........................................................................................ 45
7.2.2 IsArray ( argument ) .................................................................................................................... 45
7.2.3 IsCallable ( argument ) ................................................................................................................ 45
7.2.4 IsConstructor ( argument ) ......................................................................................................... 45
7.2.5 IsExtensible (O) ........................................................................................................................... 45
7.2.6 IsInteger ( argument ).................................................................................................................. 46
7.2.7 IsPropertyKey ( argument ) ........................................................................................................ 46
7.2.8 IsRegExp ( argument ) ................................................................................................................ 46
7.2.9 SameValue(x, y) .......................................................................................................................... 46
7.2.10 SameValueZero(x, y) ................................................................................................................... 46
7.2.11 Abstract Relational Comparison ................................................................................................ 47
7.2.12 Abstract Equality Comparison ................................................................................................... 48
7.2.13 Strict Equality Comparison ........................................................................................................ 48
7.3 Operations on Objects ................................................................................................................ 49
7.3.1 Get (O, P) ..................................................................................................................................... 49
7.3.2 GetV (V, P) ................................................................................................................................... 49
7.3.3 Set (O, P, V, Throw) ..................................................................................................................... 49
7.3.4 CreateDataProperty (O, P, V) ...................................................................................................... 49
7.3.5 CreateMethodProperty (O, P, V) ................................................................................................. 50
7.3.6 CreateDataPropertyOrThrow (O, P, V)........................................................................................ 50
7.3.7 DefinePropertyOrThrow (O, P, desc) .......................................................................................... 50
7.3.8 DeletePropertyOrThrow (O, P) .................................................................................................... 50
7.3.9 GetMethod (O, P) ......................................................................................................................... 51
7.3.10 HasProperty (O, P) ...................................................................................................................... 51
7.3.11 HasOwnProperty (O, P) ............................................................................................................... 51
7.3.12 Call(F, V, [argumentsList]) .......................................................................................................... 51
7.3.13 Construct (F, [argumentsList], [newTarget]) ............................................................................. 51
7.3.14 SetIntegrityLevel (O, level) ......................................................................................................... 52
7.3.15 TestIntegrityLevel (O, level) ........................................................................................................ 52
7.3.16 CreateArrayFromList (elements) ................................................................................................ 52
7.3.17 CreateListFromArrayLike (obj [, elementTypes] )...................................................................... 53
7.3.18 Invoke(O,P, [argumentsList]) ...................................................................................................... 53
7.3.19 OrdinaryHasInstance (C, O) ........................................................................................................ 53
7.3.20 SpeciesConstructor ( O, defaultConstructor ) ........................................................................... 54
7.3.21 EnumerableOwnNames (O) ........................................................................................................ 54
7.3.22 GetFunctionRealm ( obj ) ............................................................................................................ 54
7.4 Operations on Iterator Objects ................................................................................................... 54
7.4.1 GetIterator ( obj, method ) .......................................................................................................... 55
7.4.2 IteratorNext ( iterator, value )...................................................................................................... 55
7.4.3 IteratorComplete ( iterResult ) .................................................................................................... 55
7.4.4 IteratorValue ( iterResult ) ........................................................................................................... 55
7.4.5 IteratorStep ( iterator ) ................................................................................................................ 55
7.4.6 IteratorClose( iterator, completion ) ........................................................................................... 55
7.4.7 CreateIterResultObject ( value, done ) ....................................................................................... 56
7.4.8 CreateListIterator ( list ) .............................................................................................................. 56
8 Executable Code and Execution Contexts................................................................................. 56
8.1 Lexical Environments ................................................................................................................. 56
8.1.1 Environment Records ................................................................................................................. 57
8.1.2 Lexical Environment Operations ................................................................................................ 71
8.2 Code Realms ............................................................................................................................... 72
8.2.1 CreateRealm ( )............................................................................................................................ 73
8.2.2 CreateIntrinsics ( realmRec ) ...................................................................................................... 73
8.2.3 SetRealmGlobalObject ( realmRec, globalObj ) ......................................................................... 73
8.2.4 SetDefaultGlobalBindings ( realmRec ) ..................................................................................... 73
© Ecma International 2015 v
8.3 Execution Contexts ..................................................................................................................... 74
ResolveBinding 8.3.1 ( name, [env] )................................................................................................... 75
8.3.2 GetThisEnvironment ( ) ............................................................................................................... 75
8.3.3 ResolveThisBinding ( ) ................................................................................................................ 75
8.3.4 GetNewTarget ( ).......................................................................................................................... 75
8.3.5 GetGlobalObject ( ) ...................................................................................................................... 76
8.4 Jobs and Job Queues ................................................................................................................. 76
8.4.1 EnqueueJob (queueName, job, arguments) ............................................................................... 77
8.4.2 NextJob result ............................................................................................................................. 77
8.5 ECMAScript Initialization() .......................................................................................................... 77
8.5.1 InitializeHostDefinedRealm ( realm ) .......................................................................................... 78
9 Ordinary and Exotic Objects Behaviours ................................................................................... 78
9.1 Ordinary Object Internal Methods and Internal Slots ................................................................ 78
9.1.1 [[GetPrototypeOf]] ( )................................................................................................................... 78
9.1.2 [[SetPrototypeOf]] (V) .................................................................................................................. 78
9.1.3 [[IsExtensible]] ( ) ........................................................................................................................ 79
9.1.4 [[PreventExtensions]] ( ) ............................................................................................................. 79
9.1.5 [[GetOwnProperty]] (P) ............................................................................................................... 79
9.1.6 [[DefineOwnProperty]] (P, Desc) ................................................................................................ 79
9.1.7 [[HasProperty]](P) ....................................................................................................................... 81
9.1.8 [[Get]] (P, Receiver) ..................................................................................................................... 81
9.1.9 [[Set]] ( P, V, Receiver) ................................................................................................................ 81
9.1.10 [[Delete]] (P) ................................................................................................................................. 82
9.1.11 [[Enumerate]] () ........................................................................................................................... 82
9.1.12 [[OwnPropertyKeys]] ( ) .............................................................................................................. 83
9.1.13 ObjectCreate(proto, internalSlotsList) ....................................................................................... 83
9.1.14 OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto, internalSlotsList ) ..... 83
9.1.15 GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto ) ...................................... 84
9.2 ECMAScript Function Objects .................................................................................................... 84
9.2.1 [[Call]] ( thisArgument, argumentsList) ...................................................................................... 85
9.2.2 [[Construct]] ( argumentsList, newTarget) ................................................................................. 86
9.2.3 FunctionAllocate (functionPrototype, strict [,functionKind] ) ................................................... 87
9.2.4 FunctionInitialize (F, kind, ParameterList, Body, Scope) .......................................................... 87
9.2.5 FunctionCreate (kind, ParameterList, Body, Scope, Strict, prototype) ..................................... 88
9.2.6 GeneratorFunctionCreate (kind, ParameterList, Body, Scope, Strict) ...................................... 88
9.2.7 AddRestrictedFunctionProperties ( F, realm ) ........................................................................... 88
9.2.8 MakeConstructor (F, writablePrototype, prototype) .................................................................. 88
9.2.9 MakeClassConstructor ( F) ......................................................................................................... 89
9.2.10 MakeMethod ( F, homeObject) .................................................................................................... 89
9.2.11 SetFunctionName (F, name, prefix) ............................................................................................ 89
9.2.12 FunctionDeclarationInstantiation(func, argumentsList) ............................................................ 89
9.3 Built-in Function Objects ............................................................................................................ 92
9.3.1 [[Call]] ( thisArgument, argumentsList) ...................................................................................... 92
9.3.2 [[Construct]] (argumentsList, newTarget) .................................................................................. 93
9.3.3 CreateBuiltinFunction(realm, steps, prototype, internalSlotsList) ........................................... 93
9.4 Built-in Exotic Object Internal Methods and Slots ..................................................................... 93
9.4.1 Bound Function Exotic Objects .................................................................................................. 93
9.4.2 Array Exotic Objects ................................................................................................................... 95
9.4.3 String Exotic Objects .................................................................................................................. 97
9.4.4 Arguments Exotic Objects .......................................................................................................... 98
9.4.5 Integer Indexed Exotic Objects................................................................................................. 102
9.4.6 Module Namespace Exotic Objects .......................................................................................... 105
9.5 Proxy Object Internal Methods and Internal Slots ................................................................... 108
9.5.1 [[GetPrototypeOf]] ( )................................................................................................................. 109
9.5.2 [[SetPrototypeOf]] (V) ................................................................................................................ 109
9.5.3 [[IsExtensible]] ( ) ...................................................................................................................... 110
9.5.4 [[PreventExtensions]] ( ) ........................................................................................................... 110
9.5.5 [[GetOwnProperty]] (P) ............................................................................................................. 111
9.5.6 [[DefineOwnProperty]] (P, Desc) .............................................................................................. 111
vi © Ecma International 2015
[[H 9.5.7 asProperty]] (P) .................................................................................................................... 112
9.5.8 [[Get]] (P, Receiver) ................................................................................................................... 113
9.5.9 [[Set]] ( P, V, Receiver) .............................................................................................................. 113
9.5.10 [[Delete]] (P) .............................................................................................................................. 114
9.5.11 [[Enumerate]] () ......................................................................................................................... 114
9.5.12 [[OwnPropertyKeys]] ( ) ............................................................................................................ 114
9.5.13 [[Call]] (thisArgument, argumentsList) .................................................................................... 115
9.5.14 [[Construct]] ( argumentsList, newTarget)............................................................................... 116
9.5.15 ProxyCreate(target, handler) .................................................................................................... 116
10 ECMAScript Language: Source Code ...................................................................................... 116
10.1 Source Text ............................................................................................................................... 116
10.1.1 Static Semantics: UTF16Encoding ( cp ) ................................................................................ 117
10.1.2 Static Semantics: UTF16Decode( lead, trail )........................................................................... 117
10.2 Types of Source Code .............................................................................................................. 117
10.2.1 Strict Mode Code ...................................................................................................................... 118
10.2.2 Non-ECMAScript Functions...................................................................................................... 118
11 ECMAScript Language: Lexical Grammar ............................................................................... 118
11.1 Unicode Format-Control Characters ........................................................................................ 119
11.2 White Space .............................................................................................................................. 120
11.3 Line Terminators ....................................................................................................................... 121
11.4 Comments ................................................................................................................................. 121
11.5 Tokens ....................................................................................................................................... 122
11.6 Names and Keywords ............................................................................................................... 122
11.6.1 Identifier Names ........................................................................................................................ 123
11.6.2 Reserved Words ........................................................................................................................ 124
11.7 Punctuators ............................................................................................................................... 125
11.8 Literals ....................................................................................................................................... 125
11.8.1 Null Literals ............................................................................................................................... 125
11.8.2 Boolean Literals ........................................................................................................................ 125
11.8.3 Numeric Literals ........................................................................................................................ 125
11.8.4 String Literals ............................................................................................................................ 128
11.8.5 Regular Expression Literals ..................................................................................................... 131
11.8.6 Template Literal Lexical Components...................................................................................... 132
11.9 Automatic Semicolon Insertion ................................................................................................ 134
11.9.1 Rules of Automatic Semicolon Insertion ................................................................................. 135
11.9.2 Examples of Automatic Semicolon Insertion........................................................................... 136
12 ECMAScript Language: Expressions ....................................................................................... 137
12.1 Identifiers .................................................................................................................................. 137
12.1.1 Static Semantics: Early Errors ................................................................................................ 137
12.1.2 Static Semantics: BoundNames ............................................................................................... 138
12.1.3 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 138
12.1.4 Static Semantics: StringValue .................................................................................................. 138
12.1.5 Runtime Semantics: BindingInitialization ................................................................................ 138
12.1.6 Runtime Semantics: Evaluation .............................................................................................. 139
12.2 Primary Expression .................................................................................................................. 139
12.2.1 Semantics .................................................................................................................................. 140
12.2.2 The this Keyword .................................................................................................................... 141
12.2.3 Identifier Reference ................................................................................................................... 141
12.2.4 Literals ....................................................................................................................................... 141
12.2.5 Array Initializer .......................................................................................................................... 142
12.2.6 Object Initializer ........................................................................................................................ 144
12.2.7 Function Defining Expressions ................................................................................................ 148
12.2.8 Regular Expression Literals ..................................................................................................... 148
12.2.9 Template Literals ...................................................................................................................... 148
12.2.10 The Grouping Operator ............................................................................................................. 152
12.3 Left-Hand-Side Expressions ..................................................................................................... 153
12.3.1 Static Semantics ....................................................................................................................... 153
12.3.2 Property Accessors .................................................................................................................. 156
© Ecma International 2015 vii
The 12.3.3 new Operator ...................................................................................................................... 157
12.3.4 Function Calls ........................................................................................................................... 157
12.3.5 The super Keyword .................................................................................................................. 159
12.3.6 Argument Lists .......................................................................................................................... 160
12.3.7 Tagged Templates ..................................................................................................................... 160
12.3.8 Meta Properties ......................................................................................................................... 161
12.4 Postfix Expressions .................................................................................................................. 161
12.4.1 Static Semantics: Early Errors................................................................................................. 161
12.4.2 Static Semantics: IsFunctionDefinition ................................................................................... 161
12.4.3 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 161
12.4.4 Postfix Increment Operator....................................................................................................... 162
12.4.5 Postfix Decrement Operator ..................................................................................................... 162
12.5 Unary Operators ........................................................................................................................ 162
12.5.1 Static Semantics: Early Errors................................................................................................. 162
12.5.2 Static Semantics: IsFunctionDefinition ................................................................................... 162
12.5.3 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 163
12.5.4 The delete Operator ................................................................................................................ 163
12.5.5 The void Operator .................................................................................................................... 164
12.5.6 The typeof Operator ................................................................................................................ 164
12.5.7 Prefix Increment Operator ........................................................................................................ 165
12.5.8 Prefix Decrement Operator ....................................................................................................... 165
12.5.9 Unary + Operator ....................................................................................................................... 165
12.5.10 Unary - Operator ....................................................................................................................... 165
12.5.11 Bitwise NOT Operator ( ~ ) ........................................................................................................ 166
12.5.12 Logical NOT Operator ( ! ) ........................................................................................................ 166
12.6 Multiplicative Operators ............................................................................................................ 166
12.6.1 Static Semantics: IsFunctionDefinition ................................................................................... 166
12.6.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 166
12.6.3 Runtime Semantics: Evaluation .............................................................................................. 166
12.7 Additive Operators .................................................................................................................... 168
12.7.1 Static Semantics: IsFunctionDefinition ................................................................................... 168
12.7.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 168
12.7.3 The Addition operator ( + ) ........................................................................................................ 169
12.7.4 The Subtraction Operator ( - ) .................................................................................................. 169
12.7.5 Applying the Additive Operators to Numbers .......................................................................... 169
12.8 Bitwise Shift Operators ............................................................................................................. 170
12.8.1 Static Semantics: IsFunctionDefinition ................................................................................... 170
12.8.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 170
12.8.3 The Left Shift Operator ( << ) .................................................................................................... 170
12.8.4 The Signed Right Shift Operator ( >> ) ..................................................................................... 171
12.8.5 The Unsigned Right Shift Operator ( >>> ) ............................................................................... 171
12.9 Relational Operators ................................................................................................................. 172
12.9.1 Static Semantics: IsFunctionDefinition ................................................................................... 172
12.9.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 172
12.9.3 Runtime Semantics: Evaluation .............................................................................................. 172
12.9.4 Runtime Semantics: InstanceofOperator(O, C) ....................................................................... 174
12.10 Equality Operators .................................................................................................................... 174
12.10.1 Static Semantics: IsFunctionDefinition ................................................................................... 174
12.10.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 174
12.10.3 Runtime Semantics: Evaluation .............................................................................................. 174
12.11 Binary Bitwise Operators .......................................................................................................... 176
12.11.1 Static Semantics: IsFunctionDefinition ................................................................................... 176
12.11.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 176
12.11.3 Runtime Semantics: Evaluation .............................................................................................. 176
12.12 Binary Logical Operators .......................................................................................................... 177
12.12.1 Static Semantics: IsFunctionDefinition ................................................................................... 177
12.12.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 177
12.12.3 Runtime Semantics: Evaluation .............................................................................................. 177
viii © Ecma International 2015
12.13 Conditional Operator ( ? : ) .................................................................................................. 178
Static Semantics: IsFunctionDefinition 12.13.1 ................................................................................... 178
12.13.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 178
12.13.3 Runtime Semantics: Evaluation .............................................................................................. 178
12.14 Assignment Operators .............................................................................................................. 178
12.14.1 Static Semantics: Early Errors ................................................................................................ 179
12.14.2 Static Semantics: IsFunctionDefinition ................................................................................... 179
12.14.3 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 179
12.14.4 Runtime Semantics: Evaluation .............................................................................................. 179
12.14.5 Destructuring Assignment ....................................................................................................... 180
12.15 Comma Operator ( , ) ............................................................................................................. 185
12.15.1 Static Semantics: IsFunctionDefinition ................................................................................... 185
12.15.2 Static Semantics: IsValidSimpleAssignmentTarget ............................................................... 185
12.15.3 Runtime Semantics: Evaluation .............................................................................................. 186
13 ECMAScript Language: Statements and Declarations ............................................................ 186
13.1 Statement Semantics ................................................................................................................ 186
13.1.1 Static Semantics: ContainsDuplicateLabels ............................................................................ 186
13.1.2 Static Semantics: ContainsUndefinedBreakTarget ................................................................. 187
13.1.3 Static Semantics: ContainsUndefinedContinueTarget ............................................................ 187
13.1.4 Static Semantics: DeclarationPart........................................................................................... 187
13.1.5 Static Semantics: VarDeclaredNames..................................................................................... 188
13.1.6 Static Semantics: VarScopedDeclarations ............................................................................. 188
13.1.7 Runtime Semantics: LabelledEvaluation ............................................................................... 188
13.1.8 Runtime Semantics: Evaluation .............................................................................................. 188
13.2 Block .......................................................................................................................................... 189
13.2.1 Static Semantics: Early Errors ................................................................................................ 189
13.2.2 Static Semantics: ContainsDuplicateLabels ............................................................................ 189
13.2.3 Static Semantics: ContainsUndefinedBreakTarget ................................................................. 189
13.2.4 Static Semantics: ContainsUndefinedContinueTarget ............................................................ 190
13.2.5 Static Semantics: LexicallyDeclaredNames ........................................................................... 190
13.2.6 Static Semantics: LexicallyScopedDeclarations .................................................................... 190
13.2.7 Static Semantics: TopLevelLexicallyDeclaredNames ............................................................ 191
13.2.8 Static Semantics: TopLevelLexicallyScopedDeclarations ..................................................... 191
13.2.9 Static Semantics: TopLevelVarDeclaredNames ..................................................................... 192
13.2.10 Static Semantics: TopLevelVarScopedDeclarations .............................................................. 192
13.2.11 Static Semantics: VarDeclaredNames..................................................................................... 192
13.2.12 Static Semantics: VarScopedDeclarations ............................................................................. 193
13.2.13 Runtime Semantics: Evaluation .............................................................................................. 193
13.2.14 Runtime Semantics: BlockDeclarationInstantiation( code, env ) ........................................... 194
13.3 Declarations and the Variable Statement ................................................................................. 194
13.3.1 Let and Const Declarations ...................................................................................................... 194
13.3.2 Variable Statement .................................................................................................................... 196
13.3.3 Destructuring Binding Patterns................................................................................................ 198
13.4 Empty Statement ....................................................................................................................... 205
13.4.1 Runtime Semantics: Evaluation .............................................................................................. 205
13.5 Expression Statement............................................................................................................... 205
13.5.1 Runtime Semantics: Evaluation .............................................................................................. 205
13.6 The if Statement ...................................................................................................................... 205
13.6.1 Static Semantics: Early Errors ................................................................................................ 205
13.6.2 Static Semantics: ContainsDuplicateLabels ............................................................................ 205
13.6.3 Static Semantics: ContainsUndefinedBreakTarget ................................................................. 206
13.6.4 Static Semantics: ContainsUndefinedContinueTarget ............................................................ 206
13.6.5 Static Semantics: VarDeclaredNames..................................................................................... 206
13.6.6 Static Semantics: VarScopedDeclarations ............................................................................. 206
13.6.7 Runtime Semantics: Evaluation ............................................................................................. 207
13.7 Iteration Statements .................................................................................................................. 207
13.7.1 Semantics .................................................................................................................................. 208
13.7.2 The do-while Statement .......................................................................................................... 208
© Ecma International 2015 ix
The 13.7.3 while Statement ................................................................................................................ 209
13.7.4 The for Statement .................................................................................................................... 210
13.7.5 The for-in and for-of Statements ......................................................................................... 213
13.8 The continue Statement .......................................................................................................... 219
13.8.1 Static Semantics: Early Errors
ECMAScript® 2015 Language Specification
ecmascript 6
ecmascript شرح
سنة النشر : 2015م / 1436هـ .
حجم الكتاب عند التحميل : 11.9 ميجا بايت .
نوع الكتاب : pdf.
عداد القراءة:
اذا اعجبك الكتاب فضلاً اضغط على أعجبني و يمكنك تحميله من هنا:
شكرًا لمساهمتكم
شكراً لمساهمتكم معنا في الإرتقاء بمستوى المكتبة ، يمكنكم االتبليغ عن اخطاء او سوء اختيار للكتب وتصنيفها ومحتواها ، أو كتاب يُمنع نشره ، او محمي بحقوق طبع ونشر ، فضلاً قم بالتبليغ عن الكتاب المُخالف:
قبل تحميل الكتاب ..
يجب ان يتوفر لديكم برنامج تشغيل وقراءة ملفات pdf
يمكن تحميلة من هنا 'http://get.adobe.com/reader/'