
BookInfo
ISBN: 9781491952023 | Number of Pages: 704 |
Publisher: O’reilly, Incorporated | Book Title: the Definitive Guide : Master the World’s Most-Used Programming Language |
Publication Year: 2020 | Target Audience: Scholarly & Professional |
Author: David Flanagan | Format: Trade Paperback |
Abstract
For the Java web developer, learning a little front-end knowledge is necessary. You need to know a little about html, CSS and JavaScript.
Javascript the Definitive Guide( 7th edition ) gives a comprehensive introduction to the core of the JavaScript , as well as the legacy and standard DOM implemented in the web browser.
It uses some complex examples to illustrate how to handle common tasks such as verifying form data, cookies, and creating portable DHTML . it also includes a detailed reference manual, covering the core API of JavaScript, the legacy client API and the W3C standard DOM API, describing each JavaScript object, method, property, constructor, constant and event handler in these APIs.
About the Author
David Flanagan is a programmer and writer. His personal website is http://davidflanagan.com . His other best-selling books published in O’Reilly include JavaScript Pocket Reference, The Ruby Programming Language, and Java in a Nutshell. David graduated from MIT with a degree in computer science and engineering. He lives with his wife and children on the Pacific Northwest coast between Seattle and Vancouver.
Javascript the Definitive Guide PDF version is avaliable Later ,Please come back soon.
Table of Contents
Preface
Conventions Used in This Book
Example Code
O’Reilly Online Learning
How to Contact Us
Acknowledgments
Introduction to JavaScript
- 1.1 Exploring JavaScript
- 1.2 Hello World
- 1.3 A Tour of JavaScript
- 1.4 Example: Character Frequency Histograms
- 1.5 Summary
Lexical Structure
- 2.1 The Text of a JavaScript Program
- 2.2 Comments
- 2.3 Literals
- 2.4 Identifiers and Reserved Words
- 2.4.1 Reserved Words
- 2.5 Unicode
- 2.5.1 Unicode Escape Sequences
- 2.5.2 Unicode Normalization
- 2.6 Optional Semicolons
- 2.7 Summary
Types, Values, and Variables
- 3.1 Overview and Definitions
- 3.2 Numbers
- 3.2.1 Integer Literals
- 3.2.2 Floating-Point Literals
- 3.2.3 Arithmetic in JavaScript
- 3.2.4 Binary Floating-Point and Rounding Errors
- 3.2.5 Arbitrary Precision Integers with BigInt
- 3.2.6 Dates and Times
- 3.3 Text
- 3.3.1 String Literals
- 3.3.2 Escape Sequences in String Literals
- 3.3.3 Working with Strings
- 3.3.4 Template Literals
- 3.3.5 Pattern Matching
- 3.4 Boolean Values
- 3.5 null and undefined
- 3.6 Symbols
- 3.7 The Global Object
- 3.8 Immutable Primitive Values and Mutable Object References
- 3.9 Type Conversions
- 3.9.1 Conversions and Equality
- 3.9.2 Explicit Conversions
- 3.9.3 Object to Primitive Conversions
- 3.10 Variable Declaration and Assignment
- 3.10.1 Declarations with let and const
- 3.10.2 Variable Declarations with var
- 3.10.3 Destructuring Assignment
- 3.11 Summary
Expressions and Operators
- 4.1 Primary Expressions
- 4.2 Object and Array Initializers
- 4.3 Function Definition Expressions
- 4.4 Property Access Expressions
- 4.4.1 Conditional Property Access
- 4.5 Invocation Expressions
- 4.5.1 Conditional Invocation
- 4.6 Object Creation Expressions
- 4.7 Operator Overview
- 4.7.1 Number of Operands
- 4.7.2 Operand and Result Type
- 4.7.3 Operator Side Effects
- 4.7.4 Operator Precedence
- 4.7.5 Operator Associativity
- 4.7.6 Order of Evaluation
- 4.8 Arithmetic Expressions
- 4.8.1 The + Operator
- 4.8.2 Unary Arithmetic Operators
- 4.8.3 Bitwise Operators
- 4.9 Relational Expressions
- 4.9.1 Equality and Inequality Operators
- 4.9.2 Comparison Operators
- 4.9.3 The in Operator
- 4.9.4 The instanceof Operator
- 4.10 Logical Expressions
- 4.10.1 Logical AND (&&)
- 4.10.2 Logical OR (||)
- 4.10.3 Logical NOT (!)
- 4.11 Assignment Expressions
- 4.11.1 Assignment with Operation
- 4.12 Evaluation Expressions
- 4.12.1 eval()
- 4.12.2 Global eval()
- 4.12.3 Strict eval()
- 4.13 Miscellaneous Operators
- 4.13.1 The Conditional Operator (?:)
- 4.13.2 First-Defined (??)
- 4.13.3 The typeof Operator
- 4.13.4 The delete Operator
- 4.13.5 The await Operator
- 4.13.6 The void Operator
- 4.13.7 The comma Operator (,)
- 4.14 Summary
Statements
- 5.1 Expression Statements
- 5.2 Compound and Empty Statements
- 5.3 Conditionals
- 5.3.1 if
- 5.3.2 else if
- 5.3.3 switch
- 5.4 Loops
- 5.4.1 while
- 5.4.2 do/while
- 5.4.3 for
- 5.4.4 for/of
- 5.4.5 for/in
- 5.5 Jumps
- 5.5.1 Labeled Statements
- 5.5.2 break
- 5.5.3 continue
- 5.5.4 return
- 5.5.5 yield
- 5.5.6 throw
- 5.5.7 try/catch/finally
- 5.6 Miscellaneous Statements
- 5.6.1 with
- 5.6.2 debugger
- 5.6.3 “use strict”
- 5.7 Declarations
- 5.7.1 const, let, and var
- 5.7.2 function
- 5.7.3 class
- 5.7.4 import and export
- 5.8 Summary of JavaScript Statements
Objects
- 6.1 Introduction to Objects
- 6.2 Creating Objects
- 6.2.1 Object Literals
- 6.2.2 Creating Objects with new
- 6.2.3 Prototypes
- 6.2.4 Object.create()
- 6.3 Querying and Setting Properties
- 6.3.1 Objects As Associative Arrays
- 6.3.2 Inheritance
- 6.3.3 Property Access Errors
- 6.4 Deleting Properties
- 6.5 Testing Properties
- 6.6 Enumerating Properties
- 6.6.1 Property Enumeration Order
- 6.7 Extending Objects
- 6.8 Serializing Objects
- 6.9 Object Methods
- 6.9.1 The toString() Method
- 6.9.2 The toLocaleString() Method
- 6.9.3 The valueOf() Method
- 6.9.4 The toJSON() Method
- 6.10 Extended Object Literal Syntax
- 6.10.1 Shorthand Properties
- 6.10.2 Computed Property Names
- 6.10.3 Symbols as Property Names
- 6.10.4 Spread Operator
- 6.10.5 Shorthand Methods
- 6.10.6 Property Getters and Setters
- 6.11 Summary
Arrays
- 7.1 Creating Arrays
- 7.1.1 Array Literals
- 7.1.2 The Spread Operator
- 7.1.3 The Array() Constructor
- 7.1.4 Array.of()
- 7.1.5 Array.from()
- 7.2 Reading and Writing Array Elements
- 7.3 Sparse Arrays
- 7.4 Array Length
- 7.5 Adding and Deleting Array Elements
- 7.6 Iterating Arrays
- 7.7 Multidimensional Arrays
- 7.8 Array Methods
- 7.8.1 Array Iterator Methods
- 7.8.2 Flattening arrays with flat() and flatMap()
- 7.8.3 Adding arrays with concat()
- 7.8.4 Stacks and Queues with push(), pop(), shift(), and unshift()
- 7.8.5 Subarrays with slice(), splice(), fill(), and copyWithin()
- 7.8.6 Array Searching and Sorting Methods
- 7.8.7 Array to String Conversions
- 7.8.8 Static Array Functions
- 7.9 Array-Like Objects
- 7.10 Strings as Arrays
- 7.11 Summary
Functions
- 8.1 Defining Functions
- 8.1.1 Function Declarations
- 8.1.2 Function Expressions
- 8.1.3 Arrow Functions
- 8.1.4 Nested Functions
- 8.2 Invoking Functions
- 8.2.1 Function Invocation
- 8.2.2 Method Invocation
- 8.2.3 Constructor Invocation
- 8.2.4 Indirect Invocation
- 8.2.5 Implicit Function Invocation
- 8.3 Function Arguments and Parameters
- 8.3.1 Optional Parameters and Defaults
- 8.3.2 Rest Parameters and Variable-Length Argument Lists
- 8.3.3 The Arguments Object
- 8.3.4 The Spread Operator for Function Calls
- 8.3.5 Destructuring Function Arguments into Parameters
- 8.3.6 Argument Types
- 8.4 Functions as Values
- 8.4.1 Defining Your Own Function Properties
- 8.5 Functions as Namespaces
- 8.6 Closures
- 8.7 Function Properties, Methods, and Constructor
- 8.7.1 The length Property
- 8.7.2 The name Property
- 8.7.3 The prototype Property
- 8.7.4 The call() and apply() Methods
- 8.7.5 The bind() Method
- 8.7.6 The toString() Method
- 8.7.7 The Function() Constructor
- 8.8 Functional Programming
- 8.8.1 Processing Arrays with Functions
- 8.8.2 Higher-Order Functions
- 8.8.3 Partial Application of Functions
- 8.8.4 Memoization
- 8.9 Summary
Classes
- 9.1 Classes and Prototypes
- 9.2 Classes and Constructors
- 9.2.1 Constructors, Class Identity, and instanceof
- 9.2.2 The constructor Property
- 9.3 Classes with the class Keyword
- 9.3.1 Static Methods
- 9.3.2 Getters, Setters, and other Method Forms
- 9.3.3 Public, Private, and Static Fields
- 9.3.4 Example: A Complex Number Class
- 9.4 Adding Methods to Existing Classes
- 9.5 Subclasses
- 9.5.1 Subclasses and Prototypes
- 9.5.2 Subclasses with extends and super
- 9.5.3 Delegation Instead of Inheritance
- 9.5.4 Class Hierarchies and Abstract Classes
- 9.6 Summary
Modules
- 10.1 Modules with Classes, Objects, and Closures
- 10.1.1 Automating Closure-Based Modularity
- 10.2 Modules in Node
- 10.2.1 Node Exports
- 10.2.2 Node Imports
- 10.2.3 Node-Style Modules on the Web
- 10.3 Modules in ES6
- 10.3.1 ES6 Exports
- 10.3.2 ES6 Imports
- 10.3.3 Imports and Exports with Renaming
- 10.3.4 Re-Exports
- 10.3.5 JavaScript Modules on the Web
- 10.3.6 Dynamic Imports with import()
- 10.3.7 import.meta.url
- 10.4 Summary
The JavaScript Standard Library
- 11.1 Sets and Maps
- 11.1.1 The Set Class
- 11.1.2 The Map Class
- 11.1.3 WeakMap and WeakSet
- 11.2 Typed Arrays and Binary Data
- 11.2.1 Typed Array Types
- 11.2.2 Creating Typed Arrays
- 11.2.3 Using Typed Arrays
- 11.2.4 Typed Array Methods and Properties
- 11.2.5 DataView and Endianness
- 11.3 Pattern Matching with Regular Expressions
- 11.3.1 Defining Regular Expressions
- 11.3.2 String Methods for Pattern Matching
- 11.3.3 The RegExp Class
- 11.4 Dates and Times
- 11.4.1 Timestamps
- 11.4.2 Date Arithmetic
- 11.4.3 Formatting and Parsing Date Strings
- 11.5 Error Classes
- 11.6 JSON Serialization and Parsing
- 11.6.1 JSON Customizations
- 11.7 The Internationalization API
- 11.7.1 Formatting Numbers
- 11.7.2 Formatting Dates and Times
- 11.7.3 Comparing Strings
- 11.8 The Console API
- 11.8.1 Formatted Output with Console
- 11.9 URL APIs
- 11.9.1 Legacy URL Functions
- 11.10 Timers
- 11.11 Summary
Iterators and Generators
- 12.1 How Iterators Work
- 12.2 Implementing Iterable Objects
- 12.2.1 “Closing” an Iterator: The Return Method
- 12.3 Generators
- 12.3.1 Generator Examples
- 12.3.2 yield* and Recursive Generators
- 12.4 Advanced Generator Features
- 12.4.1 The Return Value of a Generator Function
- 12.4.2 The Value of a yield Expression
- 12.4.3 The return() and throw() Methods of a Generator
- 12.4.4 A Final Note About Generators
- 12.5 Summary
Asynchronous JavaScript
- 13.1 Asynchronous Programming with Callbacks
- 13.1.1 Timers
- 13.1.2 Events
- 13.1.3 Network Events
- 13.1.4 Callbacks and Events in Node
- 13.2 Promises
- 13.2.1 Using Promises
- 13.2.2 Chaining Promises
- 13.2.3 Resolving Promises
- 13.2.4 More on Promises and Errors
- 13.2.5 Promises in Parallel
- 13.2.6 Making Promises
- 13.2.7 Promises in Sequence
- 13.3 async and await
- 13.3.1 await Expressions
- 13.3.2 async Functions
- 13.3.3 Awaiting Multiple Promises
- 13.3.4 Implementation Details
- 13.4 Asynchronous Iteration
- 13.4.1 The for/await Loop
- 13.4.2 Asynchronous Iterators
- 13.4.3 Asynchronous Generators
- 13.4.4 Implementing Asynchronous Iterators
- 13.5 Summary
Metaprogramming
- 14.1 Property Attributes
- 14.2 Object Extensibility
- 14.3 The prototype Attribute
- 14.4 Well-Known Symbols
- 14.4.1 Symbol.iterator and Symbol.asyncIterator
- 14.4.2 Symbol.hasInstance
- 14.4.3 Symbol.toStringTag
- 14.4.4 Symbol.species
- 14.4.5 Symbol.isConcatSpreadable
- 14.4.6 Pattern-Matching Symbols
- 14.4.7 Symbol.toPrimitive
- 14.4.8 Symbol.unscopables
- 14.5 Template Tags
- 14.6 The Reflect API
- 14.7 Proxy Objects
- 14.7.1 Proxy Invariants
- 14.8 Summary
JavaScript in Web Browsers
- 15.1 Web Programming Basics
- 15.1.1 JavaScript in HTML
1 thought on “JavaScript The Definitive Guide”
Comments are closed.