Modern JavaScript for the Impatient, 1st edition
BRAND: PEARSON
Publisher: | Addison-Wesley Professional |
Author: | Cay S. Horstmann; San Jose State |
Edition: | (June 1, 2020) © 2020 |
eBook ISBN: | 9780136502159 |
Print ISBN: | 9780136502142 |
Type: | 1 Year Subscription. Dành cho Cá nhân |
eBook edition. 1 year Subscription. Dành cho Cá nhân | Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In
See what in the box
Mô tả sản phẩm
Ngày nay, JavaScript hoàn toàn khác biệt và mạnh mẽ hơn bao giờ hết. Trong môi trường mà giao diện người dùng ngày càng dựa trên web, nó trở thành “ngôn ngữ chung” của trình duyệt web. Các khung như Electron và các nền tảng như AWS Lambda đang mở rộng sức mạnh của nó hơn nữa. Nếu bạn đang chuyển sang JavaScript, bạn cần học JavaScript hiện đại, nhưng hầu hết các hướng dẫn vẫn tập trung vào các kỹ thuật cũ. Trong JavaScript hiện đại dành cho người thiếu kiên nhẫn, tác giả bán chạy nhất Cay Horstmann đưa ra phần giới thiệu ngắn gọn, đầy đủ và thực tế về các kỹ thuật và công cụ JavaScript ngày nay, đồng thời chỉ ra cách tránh những cạm bẫy trong quá khứ.
Horstmann chỉ cho sinh viên cách tận dụng tối đa Thư viện chuẩn, các công cụ JavaScript hiện đại, lập trình web và không đồng bộ, v.v. Học viên sẽ tìm thấy thông tin đặc biệt có giá trị về các chuỗi công cụ và khung công tác, điều này thường gây trở ngại cho những người mới sử dụng JavaScript. Giống như trong Core Java® SE 9 dành cho người thiếu kiên nhẫn, Horstmann trình bày rất nhiều kiến thức cơ bản nhưng anh ấy trình bày các kỹ thuật của mình theo từng phần nhỏ được sắp xếp để truy cập nhanh và dễ hiểu. Đây là JavaScript dành cho các dự án mà học sinh của bạn đang bắt đầu bây giờ – và những dự án mà các em sẽ thấy vào ngày mai.
Preface xv
About the Author xxi
Chapter 1: Values and Variables 1
1.1 Running JavaScript 1
1.2 Types and the typeofOperator 5
1.3 Comments 5
1.4 Variable Declarations 6
1.5 Identifiers 7
1.6 Numbers 8
1.7 Arithmetic Operators 9
1.8 Boolean Values 12
1.9 null and undefined 12
1.10 String Literals 13
1.11 Template Literals 15
1.12 Objects 16
1.13 Object Literal Syntax 17
1.14 Arrays 18
1.15 JSON 20
1.16 Destructuring 21
1.17 Advanced Destructuring 23
Exercises 24
Chapter 2: Control Structures 27
2.1 Expressions and Statements 27
2.2 Semicolon Insertion 29
2.3 Branches 31
2.4 Boolishness 34
2.5 Comparison and Equality Testing 34
2.6 Mixed Comparisons 36
2.7 Boolean Operators 37
2.8 The switchStatement 39
2.9 while anddo Loops 40
2.10 for Loops 41
2.11 Breaking and Continuing 44
2.12 Catching Exceptions 46
Exercises 47
Chapter 3: Functions and Functional Programming 51
3.1 Declaring Functions 51
3.2 Higher-Order Functions 53
3.3 Function Literals 54
3.4 Arrow Functions 54
3.5 Functional Array Processing 56
3.6 Closures 57
3.7 Hard Objects 59
3.8 Strict Mode 61
3.9 Testing Argument Types 62
3.10 Supplying More or Fewer Arguments 63
3.11 Default Arguments 64
3.12 Rest Parameters and the Spread Operator 64
3.13 Simulating Named Arguments with Destructuring 66
3.14 Hoisting 67
3.15 Throwing Exceptions 69
3.16 Catching Exceptions 70
3.17 The finallyClause 72
Exercises 73
Chapter 4: Object-Oriented Programming 77
4.1 Methods 77
4.2 Prototypes 78
4.3 Constructors 81
4.4 The Class Syntax 83
4.5 Getters and Setters 85
4.6 Instance Fields and Private Methods 85
4.7 Static Methods and Fields 86
4.8 Subclasses 87
4.9 Overriding Methods 89
4.10 Subclass Construction 90
4.11 Class Expressions 91
4.12 The thisReference 92
Exercises 95
Chapter 5: Numbers and Dates 99
5.1 Number Literals 99
5.2 Number Formatting 100
5.3 Number Parsing 101
5.4 Number Functions and Constants 102
5.5 Mathematical Functions and Constants 103
5.6 Big Integers 105
5.7 Constructing Dates 105
5.8 Date Functions and Methods 109
5.9 Date Formatting 110
Exercises 110
Chapter 6: Strings and Regular Expressions 115
6.1 Converting between Strings and Code Point Sequences 115
6.2 Substrings 116
6.3 Other String Methods 118
6.4 Tagged Template Literals 121
6.5 Raw Template Literals 122
6.6 Regular Expressions 123
6.7 Regular Expression Literals 127
6.8 Flags 127
6.9 Regular Expressions and Unicode 129
6.10 The Methods of the RegExpClass 130
6.11 Groups 131
6.12 String Methods with Regular Expressions 133
6.13 More about Regex Replace 135
6.14 Exotic Features 136
Exercises 137
Chapter 7: Arrays and Collections 141
7.1 Constructing Arrays 141
7.2 The lengthProperty and Index Properties 143
7.3 Deleting and Adding Elements 144
7.4 Other Array Mutators 145
7.5 Producing Elements 148
7.6 Finding Elements 149
7.7 Visiting All Elements 150
7.8 Sparse Arrays 152
7.9 Reduction 153
7.10 Maps 156
7.11 Sets 158
7.12 Weak Maps and Sets 159
7.13 Typed Arrays 160
7.14 Array Buffers 163
Exercises 164
Chapter 8: Internationalization 167
8.1 The Locale Concept 167
8.2 Specifying a Locale 168
8.3 Formatting Numbers 171
8.4 Localizing Dates and Times 172
8.5 Collation 176
8.6 Other Locale-Sensitive String Methods 177
8.7 Plural Rules and Lists 178
8.8 Miscellaneous Locale Features 180
Exercises 181
Chapter 9: Asynchronous Programming 185
9.1 Concurrent Tasks in JavaScript 185
9.2 Making Promises 188
9.3 Immediately Settled Promises 191
9.4 Obtaining Promise Results 191
9.5 Promise Chaining 192
9.6 Rejection Handling 194
9.7 Executing Multiple Promises 196
9.8 Racing Multiple Promises 197
9.9 Async Functions 197
9.10 Async Return Values 199
9.11 Concurrent Await 201
9.12 Exceptions in Async Functions 202
Exercises 203
Chapter 10: Modules 209
10.1 The Module Concept 209
10.2 ECMAScript Modules 210
10.3 Default Imports 211
10.4 Named Imports 212
10.5 Dynamic Imports 213
10.6 Exports 213
10.7 Packaging Modules 217
Exercises 218
Chapter 11: Metaprogramming 221
11.1 Symbols 221
11.2 Customization with Symbol Properties 223
11.3 Property Attributes 225
11.4 Enumerating Properties 228
11.5 Testing a Single Property 229
11.6 Protecting Objects 230
11.7 Creating or Updating Objects 231
11.8 Accessing and Updating the Prototype 231
11.9 Cloning Objects 232
11.10 Function Properties 235
11.11 Binding Arguments and Invoking Methods 236
11.12 Proxies 237
11.13 The ReflectClass 240
11.14 Proxy Invariants 242
Exercises 244
Chapter 12: Iterators and Generators 249
12.1 Iterable Values 249
12.2 Implementing an Iterable 250
12.3 Closeable Iterators 252
12.4 Generators 254
12.5 Nested Yield 255
12.6 Generators as Consumers 257
12.7 Generators and Asynchronous Processing 259
12.8 Async Generators and Iterators 261
Exercises 263
Chapter 13: An Introduction to Typescript 269
13.1 Type Annotations 270
13.2 Running TypeScript 271
13.3 Type Terminology 273
13.4 Primitive Types 274
13.5 Composite Types 275
13.6 Type Inference 277
13.7 Subtypes 280
13.8 Classes 284
13.9 Structural Typing 287
13.10 Interfaces 288
13.11 Indexed Properties 290
13.12 Complex Function Parameters 291
13.13 Generic Programming 297
Exercises 305
Index 309
Ngày nay, JavaScript hoàn toàn khác biệt và mạnh mẽ hơn bao giờ hết. Trong môi trường mà giao diện người dùng ngày càng dựa trên web, nó trở thành “ngôn ngữ chung” của trình duyệt web. Các khung như Electron và các nền tảng như AWS Lambda đang mở rộng sức mạnh của nó hơn nữa. Nếu bạn đang chuyển sang JavaScript, bạn cần học JavaScript hiện đại, nhưng hầu hết các hướng dẫn vẫn tập trung vào các kỹ thuật cũ. Trong JavaScript hiện đại dành cho người thiếu kiên nhẫn, tác giả bán chạy nhất Cay Horstmann đưa ra phần giới thiệu ngắn gọn, đầy đủ và thực tế về các kỹ thuật và công cụ JavaScript ngày nay, đồng thời chỉ ra cách tránh những cạm bẫy trong quá khứ.
Horstmann chỉ cho sinh viên cách tận dụng tối đa Thư viện chuẩn, các công cụ JavaScript hiện đại, lập trình web và không đồng bộ, v.v. Học viên sẽ tìm thấy thông tin đặc biệt có giá trị về các chuỗi công cụ và khung công tác, điều này thường gây trở ngại cho những người mới sử dụng JavaScript. Giống như trong Core Java® SE 9 dành cho người thiếu kiên nhẫn, Horstmann trình bày rất nhiều kiến thức cơ bản nhưng anh ấy trình bày các kỹ thuật của mình theo từng phần nhỏ được sắp xếp để truy cập nhanh và dễ hiểu. Đây là JavaScript dành cho các dự án mà học sinh của bạn đang bắt đầu bây giờ – và những dự án mà các em sẽ thấy vào ngày mai.
Preface xv
About the Author xxi
Chapter 1: Values and Variables 1
1.1 Running JavaScript 1
1.2 Types and the typeofOperator 5
1.3 Comments 5
1.4 Variable Declarations 6
1.5 Identifiers 7
1.6 Numbers 8
1.7 Arithmetic Operators 9
1.8 Boolean Values 12
1.9 null and undefined 12
1.10 String Literals 13
1.11 Template Literals 15
1.12 Objects 16
1.13 Object Literal Syntax 17
1.14 Arrays 18
1.15 JSON 20
1.16 Destructuring 21
1.17 Advanced Destructuring 23
Exercises 24
Chapter 2: Control Structures 27
2.1 Expressions and Statements 27
2.2 Semicolon Insertion 29
2.3 Branches 31
2.4 Boolishness 34
2.5 Comparison and Equality Testing 34
2.6 Mixed Comparisons 36
2.7 Boolean Operators 37
2.8 The switchStatement 39
2.9 while anddo Loops 40
2.10 for Loops 41
2.11 Breaking and Continuing 44
2.12 Catching Exceptions 46
Exercises 47
Chapter 3: Functions and Functional Programming 51
3.1 Declaring Functions 51
3.2 Higher-Order Functions 53
3.3 Function Literals 54
3.4 Arrow Functions 54
3.5 Functional Array Processing 56
3.6 Closures 57
3.7 Hard Objects 59
3.8 Strict Mode 61
3.9 Testing Argument Types 62
3.10 Supplying More or Fewer Arguments 63
3.11 Default Arguments 64
3.12 Rest Parameters and the Spread Operator 64
3.13 Simulating Named Arguments with Destructuring 66
3.14 Hoisting 67
3.15 Throwing Exceptions 69
3.16 Catching Exceptions 70
3.17 The finallyClause 72
Exercises 73
Chapter 4: Object-Oriented Programming 77
4.1 Methods 77
4.2 Prototypes 78
4.3 Constructors 81
4.4 The Class Syntax 83
4.5 Getters and Setters 85
4.6 Instance Fields and Private Methods 85
4.7 Static Methods and Fields 86
4.8 Subclasses 87
4.9 Overriding Methods 89
4.10 Subclass Construction 90
4.11 Class Expressions 91
4.12 The thisReference 92
Exercises 95
Chapter 5: Numbers and Dates 99
5.1 Number Literals 99
5.2 Number Formatting 100
5.3 Number Parsing 101
5.4 Number Functions and Constants 102
5.5 Mathematical Functions and Constants 103
5.6 Big Integers 105
5.7 Constructing Dates 105
5.8 Date Functions and Methods 109
5.9 Date Formatting 110
Exercises 110
Chapter 6: Strings and Regular Expressions 115
6.1 Converting between Strings and Code Point Sequences 115
6.2 Substrings 116
6.3 Other String Methods 118
6.4 Tagged Template Literals 121
6.5 Raw Template Literals 122
6.6 Regular Expressions 123
6.7 Regular Expression Literals 127
6.8 Flags 127
6.9 Regular Expressions and Unicode 129
6.10 The Methods of the RegExpClass 130
6.11 Groups 131
6.12 String Methods with Regular Expressions 133
6.13 More about Regex Replace 135
6.14 Exotic Features 136
Exercises 137
Chapter 7: Arrays and Collections 141
7.1 Constructing Arrays 141
7.2 The lengthProperty and Index Properties 143
7.3 Deleting and Adding Elements 144
7.4 Other Array Mutators 145
7.5 Producing Elements 148
7.6 Finding Elements 149
7.7 Visiting All Elements 150
7.8 Sparse Arrays 152
7.9 Reduction 153
7.10 Maps 156
7.11 Sets 158
7.12 Weak Maps and Sets 159
7.13 Typed Arrays 160
7.14 Array Buffers 163
Exercises 164
Chapter 8: Internationalization 167
8.1 The Locale Concept 167
8.2 Specifying a Locale 168
8.3 Formatting Numbers 171
8.4 Localizing Dates and Times 172
8.5 Collation 176
8.6 Other Locale-Sensitive String Methods 177
8.7 Plural Rules and Lists 178
8.8 Miscellaneous Locale Features 180
Exercises 181
Chapter 9: Asynchronous Programming 185
9.1 Concurrent Tasks in JavaScript 185
9.2 Making Promises 188
9.3 Immediately Settled Promises 191
9.4 Obtaining Promise Results 191
9.5 Promise Chaining 192
9.6 Rejection Handling 194
9.7 Executing Multiple Promises 196
9.8 Racing Multiple Promises 197
9.9 Async Functions 197
9.10 Async Return Values 199
9.11 Concurrent Await 201
9.12 Exceptions in Async Functions 202
Exercises 203
Chapter 10: Modules 209
10.1 The Module Concept 209
10.2 ECMAScript Modules 210
10.3 Default Imports 211
10.4 Named Imports 212
10.5 Dynamic Imports 213
10.6 Exports 213
10.7 Packaging Modules 217
Exercises 218
Chapter 11: Metaprogramming 221
11.1 Symbols 221
11.2 Customization with Symbol Properties 223
11.3 Property Attributes 225
11.4 Enumerating Properties 228
11.5 Testing a Single Property 229
11.6 Protecting Objects 230
11.7 Creating or Updating Objects 231
11.8 Accessing and Updating the Prototype 231
11.9 Cloning Objects 232
11.10 Function Properties 235
11.11 Binding Arguments and Invoking Methods 236
11.12 Proxies 237
11.13 The ReflectClass 240
11.14 Proxy Invariants 242
Exercises 244
Chapter 12: Iterators and Generators 249
12.1 Iterable Values 249
12.2 Implementing an Iterable 250
12.3 Closeable Iterators 252
12.4 Generators 254
12.5 Nested Yield 255
12.6 Generators as Consumers 257
12.7 Generators and Asynchronous Processing 259
12.8 Async Generators and Iterators 261
Exercises 263
Chapter 13: An Introduction to Typescript 269
13.1 Type Annotations 270
13.2 Running TypeScript 271
13.3 Type Terminology 273
13.4 Primitive Types 274
13.5 Composite Types 275
13.6 Type Inference 277
13.7 Subtypes 280
13.8 Classes 284
13.9 Structural Typing 287
13.10 Interfaces 288
13.11 Indexed Properties 290
13.12 Complex Function Parameters 291
13.13 Generic Programming 297
Exercises 305
Index 309