Book description
Exploit the Power of Modern JavaScript and Avoid the Pitfalls
JavaScript was originally designed for small-scale programming in web browsers, but modern JavaScript is radically different. Nowadays, JavaScript programmers actively embrace functional, object-oriented, and asynchronous programming, while deprecating error-prone concepts from the past. Modern JavaScript for the Impatient is a complete yet concise guide to JavaScript E6 and beyond. Rather than first requiring you to learn and transition from older versions, it helps you quickly get productive with today's far more powerful versions and rapidly move from languages such as Java, C#, C, or C++.
Bestselling programming author Cay S. Horstmann covers all you need to know, provided in small chunks organized for quick access and easy understanding. Horstmann's practical insights and sample code help you take advantage of all that's new, avoid common pitfalls and obsolete features, and make the most of modern JavaScript's robust toolchains and frameworks.
- Quickly master modern JavaScript's implementation of fundamental programming constructs
- Avoid legacy techniques that create unnecessary complexity and risk
- Make the most of functional, object-oriented, and asynchronous techniques
- Use modules to efficiently organize and run complex programs
- Write more powerful, flexible, and concise programs with metaprogramming
- Extend JavaScript's power via JavaScript libraries, frameworks, and platforms
Whether you're just getting started with JavaScript or you're an experienced developer, this guide will help you write tomorrow's most robust, efficient, and secure JavaScript code.
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Table of contents
- Cover Page
- About This eBook
- Half Title Page
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Preface
- About the Author
-
Chapter 1. Values and Variables
- 1.1 Running JavaScript
- 1.2 Types and the typeof Operator
- 1.3 Comments
- 1.4 Variable Declarations
- 1.5 Identifiers
- 1.6 Numbers
- 1.7 Arithmetic Operators
- 1.8 Boolean Values
- 1.9 null and undefined
- 1.10 String Literals
- 1.11 Template Literals
- 1.12 Objects
- 1.13 Object Literal Syntax
- 1.14 Arrays
- 1.15 JSON
- 1.16 Destructuring
- 1.17 Advanced Destructuring
- Exercises
- Chapter 2. Control Structures
-
Chapter 3. Functions and Functional Programming
- 3.1 Declaring Functions
- 3.2 Higher-Order Functions
- 3.3 Function Literals
- 3.4 Arrow Functions
- 3.5 Functional Array Processing
- 3.6 Closures
- 3.7 Hard Objects
- 3.8 Strict Mode
- 3.9 Testing Argument Types
- 3.10 Supplying More or Fewer Arguments
- 3.11 Default Arguments
- 3.12 Rest Parameters and the Spread Operator
- 3.13 Simulating Named Arguments with Destructuring
- 3.14 Hoisting
- 3.15 Throwing Exceptions
- 3.16 Catching Exceptions
- 3.17 The finally Clause
- Exercises
- Chapter 4. Object-Oriented Programming
- Chapter 5. Numbers and Dates
-
Chapter 6. Strings and Regular Expressions
- 6.1 Converting between Strings and Code Point Sequences
- 6.2 Substrings
- 6.3 Other String Methods
- 6.4 Tagged Template Literals
- 6.5 Raw Template Literals
- 6.6 Regular Expressions
- 6.7 Regular Expression Literals
- 6.8 Flags
- 6.9 Regular Expressions and Unicode
- 6.10 The Methods of the RegExp Class
- 6.11 Groups
- 6.12 String Methods with Regular Expressions
- 6.13 More about Regex Replace
- 6.14 Exotic Features
- Exercises
-
Chapter 7. Arrays and Collections
- 7.1 Constructing Arrays
- 7.2 The length Property and Index Properties
- 7.3 Deleting and Adding Elements
- 7.4 Other Array Mutators
- 7.5 Producing Elements
- 7.6 Finding Elements
- 7.7 Visiting All Elements
- 7.8 Sparse Arrays
- 7.9 Reduction
- 7.10 Maps
- 7.11 Sets
- 7.12 Weak Maps and Sets
- 7.13 Typed Arrays
- 7.14 Array Buffers
- Exercises
- Chapter 8. Internationalization
-
Chapter 9. Asynchronous Programming
- 9.1 Concurrent Tasks in JavaScript
- 9.2 Making Promises
- 9.3 Immediately Settled Promises
- 9.4 Obtaining Promise Results
- 9.5 Promise Chaining
- 9.6 Rejection Handling
- 9.7 Executing Multiple Promises
- 9.8 Racing Multiple Promises
- 9.9 Async Functions
- 9.10 Async Return Values
- 9.11 Concurrent Await
- 9.12 Exceptions in Async Functions
- Exercises
- Chapter 10. Modules
-
Chapter 11. Metaprogramming
- 11.1 Symbols
- 11.2 Customization with Symbol Properties
- 11.3 Property Attributes
- 11.4 Enumerating Properties
- 11.5 Testing a Single Property
- 11.6 Protecting Objects
- 11.7 Creating or Updating Objects
- 11.8 Accessing and Updating the Prototype
- 11.9 Cloning Objects
- 11.10 Function Properties
- 11.11 Binding Arguments and Invoking Methods
- 11.12 Proxies
- 11.13 The Reflect Class
- 11.14 Proxy Invariants
- Exercises
- Chapter 12. Iterators and Generators
- Chapter 13. An Introduction to Typescript
- Index
- Code Snippets
Product information
- Title: Modern JavaScript for the Impatient
- Author(s):
- Release date: June 2020
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780136502166
You might also like
video
Modern JavaScript for the Impatient
8+ Hours of Video Instruction It can be difficult for developers familiar with Java and other …
video
Modern JavaScript From The Beginning
This is a front to back JavaScript course for absolutely everybody. We start with the basic …
video
Modern JavaScript from the Beginning - Second Edition
This course is a comprehensive introduction to JavaScript, covering everything from the basics of variables, data …
book
Node.js: Novice to Ninja
Node.js: Novice to Ninja is your hands-on guide to learning everything needed to build a professional …