Table of Contents
JavaScript - The Definitive Guide - Master the World's Most-Used Programming Language
Return to IT bibliography, JavaScript bibliography
7th Edition, by David Flanagan
For web developers and other programmers interested in using JavaScript, this bestselling book provides the most comprehensive JavaScript material on the market. The seventh edition represents a significant update, with new information for ECMAScript 2020, and new chapters on language-specific features.
JavaScript: The Definitive Guide is ideal for experienced programmers who want to learn the programming language of the web, and for current JavaScript programmers who want to master it.
About This Book
JavaScript is the programming language of the web. The overwhelming majority of websites use JavaScript, and all modern web browsers—on desktops, tablets, and phones—include JavaScript interpreters, making JavaScript the most-deployed programming language in history. Over the last decade, Node.js has enabled JavaScript programming outside of web browsers, and the dramatic success of Node means that JavaScript is now also the most-used programming language among software developers. Whether you’re starting from scratch or are already using JavaScript professionally, this book will help you master the language.
If you are already familiar with other programming languages, it may help you to know that JavaScript is a high-level, dynamic, interpreted programming language that is well-suited to object-oriented and functional programming styles. JavaScript’s variables are untyped. Its syntax is loosely based on Java, but the languages are otherwise unrelated.
JavaScript derives its first-class functions from Scheme and its prototype-based inheritance from the little-known language Self. But you do not need to know any of those languages, or be familiar with those terms, to use this book and learn JavaScript.
This book covers the JavaScript language and the JavaScript APIs implemented by web browsers and by Node. I wrote it for readers with some prior programming experience who want to learn JavaScript and also for programmers who already use JavaScript but want to take their understanding to a new level and really master the language. My goal with this book is to document the JavaScript language comprehensively and definitively and to provide an in-depth introduction to the most important client-side and server-side APIs available to JavaScript programs. As a result, this is a long and detailed book. My hope, however, is that it will reward careful study and that the time you spend reading it will be easily recouped in the form of higher programming productivity.
About the Author
David Flanagan is a computer programmer who spends most of his time writing about JavaScript and Java. His books with O'Reilly include Java in a Nutshell, Java Examples in a Nutshell, Java Foundation Classes in a Nutshell, JavaScript: The Definitive Guide, and JavaScript Pocket Reference. David has a degree in computer science and engineering from the Massachusetts Institute of Technology. He lives with his wife and children in the U.S. Pacific Northwest bewteen the cities of Seattle, Washington and Vancouver, British Columbia. David has a blog at www.davidflanagan.com.
Book details
- Publication Date: May 14, 2020
- Print Length: 708 pages
- Publisher: O'Reilly Media; 7th Edition (May 14, 2020)
Preface
“This book covers the JavaScript language and the JavaScript APIs implemented by web browsers and by Node.js. I wrote it for readers with some prior programming experience who want to learn JavaScript and also for programmers who already use JavaScript but want to take their understanding to a new level and really master the language. My goal with this JavaScript book is to document the JavaScript language comprehensively and definitively and to provide an in-depth introduction to the most important client-side APIs and server-side APIs available to JavaScript programs. As a result, this is a long and detailed book. My hope, however, is that it will reward careful study and that the time you spend reading it will be easily recouped in the form of higher programming productivity.
Previous editions of this book included a comprehensive JavaScript reference section. I no longer feel that it makes sense to include that material in printed form when it is so quick and easy to find up-to-date reference material online. If you need to look up anything related to core or client-side JavaScript, I recommend you visit the MDN website. And for server-side Node APIs, I recommend you go directly to the source and consult the Node.js reference documentation.”
Example Code
Supplemental material (code examples, coding exercises, etc.) for this book is available for download at: https://oreil.ly/javascript_defgd7
Attribution
Attribution: An attribution usually includes the title, author, publisher, and ISBN. For example: “JavaScript - The Definitive Guide, Seventh Edition, by David Flanagan (O’Reilly). Copyright 2020 David Flanagan, 978-1-491-95202-3.”
Book Website and Errata
We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at https://oreil.ly/javascript_defgd7.
Table of Contents
Chapter 1 - Introduction to JavaScript
- 1.4 Example: JavaScript Character Frequency Histograms
- 1.5 Summary
Chapter 2 - Lexical Structure
Chapter 3 - Types, Values, and Variables
- 3.3 JavaScript Text
- 3.10.2 Variable Declarations with var]]
- 3.11 JavaScript Summary
Chapter 4 - Expressions and Operators
- 4.10.1 JavaScript Logical AND (&&)
- 4.10.2 |)
- 4.10.3 JavaScript Logical NOT (!)
- 4.12.1 JavaScript eval()
- 4.12.2 JavaScript Global eval()
- 4.12.3 JavaScript Strict eval()
- 4.13.2 JavaScript First-Defined (
- 4.13.6 JavaScript The void Operator
- 5.3.1 JavaScript if
- 5.3.2 JavaScript else if
- 5.3.3 JavaScript switch
- 5.4 JavaScript Loops
- 5.4.1 JavaScript while
- 5.4.2 JavaScript do/while
- 5.4.3 JavaScript for
- 5.4.4 JavaScript for/of
- 5.4.5 JavaScript for/in
- 5.5 JavaScript Jumps
- 5.5.2 JavaScript break
- 5.5.3 JavaScript continue
- 5.5.4 JavaScript return
- 5.5.5 JavaScript yield
- 5.5.6 JavaScript throw
- 5.6.1 JavaScript with
- 5.6.2 JavaScript debugger
- 5.6.3 JavaScript “use strict”
- 5.7.2 JavaScript function
- 5.7.3 JavaScript class
Chapter 6 - Objects
- 6.2.3 JavaScript Prototypes
- 6.3.2 JavaScript Inheritance
- 6.10.4 JavaScript Spread Operator
- 6.10.5 JavaScript Shorthand Methods
- 7.1.4 JavaScript Array.of()
- 7.1.5 JavaScript Array.from()
- 8.8.4 JavaScript Memoization
- 9.3.4 A Complex Number Class
- 10.2.2 JavaScript Node Imports
- 10.3.2 JavaScript ES6 Imports
- 10.3.4 JavaScript Re-Exports
- 10.3.7 JavaScript import.meta.url
- 11.1.1 JavaScript The Set Class
- 11.1.2 JavaScript The Map Class
- 11.2.1 JavaScript Typed Array Types
- 11.3.3 JavaScript The RegExp Class
- 11.4.1 JavaScript Timestamps
- 11.4.2 JavaScript Date Arithmetic
- 11.7.3 JavaScript Comparing Strings
- 11.9 JavaScript URL APIs
- 11.10 JavaScript Timers
- 13.1.1 JavaScript Timers
- 13.1.2 JavaScript Events
- 13.1.3 JavaScript Network Events
- 13.2 JavaScript Promises
- 13.2.1 JavaScript Using Promises
- 13.2.2 JavaScript Chaining Promises
- 13.2.6 JavaScript Making Promises
- 13.3.1 JavaScript await Expressions
- 13.3.2 JavaScript async Functions
- 14.4.4 JavaScript Symbol.species
- 14.7.1 JavaScript Proxy Invariants
- 15.1.7 JavaScript Program Errors
- 15.2 JavaScript Events
- 15.2.1 JavaScript Event Categories
- 15.2.4 JavaScript Event Propagation
- 15.3.3 JavaScript Attributes
- 15.3.4 JavaScript Element Content
- 15.4.1 JavaScript CSS Classes
- 15.4.2 JavaScript Inline Styles
- 15.4.3 JavaScript Computed Styles
- 15.5.4 JavaScript Scrolling
- 15.6.2 JavaScript HTML Templates
- 15.6.3 JavaScript Custom Elements
- 15.6.4 JavaScript Shadow DOM
- 15.6.5 a <search-box> Web Component
- 15.7.1 JavaScript SVG in HTML
- 15.7.2 JavaScript Scripting SVG
- 15.8.6 JavaScript Clipping
- 15.9.2 JavaScript The WebAudio API
- 15.10.1 JavaScript Loading New Documents
- 15.10.2 JavaScript Browsing History
- 15.11 JavaScript Networking
- 15.11.1 JavaScript fetch()
- 15.11.2 JavaScript Server-Sent Events
- 15.11.3 JavaScript WebSockets
- 15.12 JavaScript Storage
- 15.12.2 JavaScript Cookies
- 15.12.3 JavaScript IndexedDB
- 15.13.1 JavaScript Worker Objects
- 15.14 The Mandelbrot Set
- 15.15 Summary and Suggestions for Further Reading]]
- 15.15.1 JavaScript HTML and CSS
- 15.15.2 JavaScript Performance
- 15.15.3 JavaScript Security
- 15.15.4 JavaScript WebAssembly
- 15.15.6 JavaScript Events
- 15.15.8 JavaScript Mobile Device APIs
- 15.15.9 JavaScript Binary APIs
- 15.15.10 JavaScript Media APIs
Chapter 16 - Server-Side JavaScript with Node.Js
- 16.1.1 JavaScript Console Output
- 16.1.4 JavaScript Node Modules
- 16.3 JavaScript Buffers
- 16.7.2 JavaScript Reading Files
- 16.7.3 JavaScript Writing Files
- 16.7.4 JavaScript File Operations
- 16.7.5 JavaScript File Metadata
- 16.10.2 JavaScript exec() and execFile()
- 16.10.3 JavaScript spawn()
- 16.10.4 JavaScript fork()
- 16.12 Summary
Chapter 17 - JavaScript Tools and Extensions
- 17.8.3 JavaScript Class Types
- 17.8.4 JavaScript Object Types
- 17.8.5 JavaScript Type Aliases
- 17.8.6 JavaScript Array Types
- 17.8.8 JavaScript Read-Only Types
- 17.8.9 JavaScript Function Types
- 17.8.10 JavaScript Union Types