JavaScript Cookbook: Programming the Web, 3rd Edition
- Length: 527 pages
- Edition: 3
- Language: English
- Publisher: O'Reilly Media
- Publication Date: 2021-08-17
- ISBN-10: 1492055751
- ISBN-13: 9781492055754
- Sales Rank: #1282580 (See Top 100 Books)
Why reinvent the wheel every time you run into a problem with JavaScript? This cookbook is chock-full of code recipes for common programming tasks, along with techniques for building apps that work in any browser. You’ll get adaptable code samples that you can add to almost any project–and you’ll learn more about JavaScript in the process.
The recipes in this book take advantage of the latest features in ECMAScript 2020 and beyond and use modern JavaScript coding standards. You’ll learn how to:
- Set up a productive development environment with a code editor, linter, and test server
- Work with JavaScript data types, such as strings, arrays, and BigInts
- Improve your understanding of JavaScript functions, including arrow functions, closures, and generators
- Apply object-oriented programming concepts like classes and inheritance
- Work with rich media in JavaScript, including audio, video, and SVGs
- Manipulate HTML markup and CSS styles
- Use JavaScript anywhere with Node.js
- Access and manipulate remote data with REST, GraphQL, and Fetch
- Get started with the popular Express application-building framework
- Perform asynchronous operations with Promises, async/await, and web workers
Preface Book Audience Book Organization Conventions Used in This Book Using Code Examples O’Reilly Online Learning How to Contact Us Acknowledgments I. The JavaScript Language 1. Setting Up a Development Environment Choosing a Code Editor Problem Solution Discussion See Also Using the Developer Console in Your Browser Problem Solution Discussion See Also Running Blocks of Code in the Developer Console Problem Solution Discussion See Also Using Strict Mode to Catch Common Mistakes Problem Solution Discussion See Also Filling in HTML Boilerplate with Emmet Shortcuts Problem Solution Discussion Installing the npm Package Manager (with Node.js) Problem Solution Discussion See Also Extra: Using a Terminal and Shell Downloading a Package with npm Problem Solution Discussion Extra: Understanding package.json Updating a Package with npm Problem Solution Discussion Setting Up a Local Test Server Problem Solution Discussion See Also Enforcing Code Standards with a Linter Problem Solution Discussion Styling Code Consistently with a Formatter Problem Solution Discussion Experimenting in a JavaScript Playground Problem Solution Discussion 2. Strings and Regular Expressions Checking for an Existing, Nonempty String Problem Solution Discussion Converting a Numeric Value to a Formatted String Problem Solution Discussion See Also Inserting Special Characters Problem Solution Discussion See Also Inserting Emojis Problem Solution Discussion Using Template Literals for Clearer String Concatenation Problem Solution Discussion Performing a Case-Insensitive String Comparison Problem Solution Discussion Checking If a String Contains a Specific Substring Problem Solution Discussion Replacing All Occurrences of a String Problem Solution Discussion See Also Replacing HTML Tags with Named Entities Problem Solution Discussion See Also Using a Regular Expression to Replace Patterns in a String Problem Solution Discussion Extra: Regular Expressions Extracting a List from a String Problem Solution Discussion See Also Finding All Instances of a Pattern Problem Solution Discussion Extra: Highlighting Matches Removing Whitespace from the Beginning and End of a String Problem Solution Discussion See Also Converting the First Letter of a String to Uppercase Problem Solution Discussion See Also Validating an Email Address Problem Solution Discussion See Also 3. Numbers Generating Random Numbers Problem Solution Discussion See Also Generating Cryptographically Secure Random Numbers Problem Solution Discussion Rounding to a Specific Decimal Place Problem Solution Discussion See Also Preserving Accuracy in Decimal Values Problem Solution Discussion See Also Converting a String to a Number Problem Solution Discussion Converting a Decimal to a Hexadecimal Value Problem Solution Discussion Converting Between Degrees and Radians Problem Solution Discussion Calculating the Length of a Circular Arc Problem Solution Discussion Manipulating Very Large Numbers with BigInt Problem Solution Discussion 4. Dates Getting the Current Date and Time Problem Solution Discussion See Also Converting a String to a Date Problem Solution Discussion See Also Adding Days to a Date Problem Solution Discussion See Also Comparing Dates and Testing Dates for Equality Problem Solution Discussion See Also Calculating the Time Elapsed Between Two Dates Problem Solution Discussion See Also Formatting a Date Value as a String Problem Solution Discussion See Also 5. Arrays Checking If an Object Is an Array Problem Solution Discussion Iterating Over All the Elements in an Array Problem Solution Discussion Checking If Two Arrays Are Equal Problem Solution Discussion Breaking Down an Array into Separate Variables Problem Solution Discussion See Also Passing an Array to a Function That Expects a List of Values Problem Solution Discussion See Also Cloning an Array Problem Solution Discussion See Also Merging Two Arrays Problem Solution Discussion See Also Copying a Portion of an Array by Position Problem Solution Discussion See Also Extracting Array Items That Meet Specific Criteria Problem Solution Discussion See Also Emptying an Array Problem Solution Discussion Removing Duplicate Values Problem Solution Discussion See Also Flattening a Two-Dimensional Array Problem Solution Discussion Searching Through an Array for Exact Matches Problem Solution Discussion See Also Searching Through an Array for Items That Meet Specific Criteria Problem Solution Discussion See Also Removing or Replacing Array Elements Problem Solution Discussion Sorting an Array of Objects by a Property Value Problem Solution Discussion Transforming Every Element of an Array Problem Solution Discussion Combining an Array’s Values in a Single Calculation Problem Solution Discussion See Also Validating Array Contents Problem Solution Discussion See Also Creating a Collection of Nonduplicated Values Problem Solution Discussion Creating a Key-Indexed Collection of Items Problem Solution Discussion 6. Functions Passing a Function as an Argument to Another Function Problem Solution Discussion See Also Using Arrow Functions Problem Solution Discussion See Also Providing a Default Parameter Value Problem Solution Discussion Creating a Function That Accepts Unlimited Arguments Problem Solution Discussion See Also Using Named Function Parameters Problem Solution Discussion See Also Creating a Function That Stores its State with a Closure Problem Solution Discussion See Also Creating a Generator Function That Yields Multiple Values Problem Solution Discussion See Also Extra: Building a Repeatable Pseudorandom Number Generator Reducing Redundancy by Using Partial Application Problem Solution Discussion Advanced: A Partial Function Factory Extra: Using bind() to Partially Provide Arguments Fixing this with Function Binding Problem Solution Discussion Extra: self = this Implementing a Recursive Algorithm Problem Solution Discussion 7. Objects Checking if an Object Is a Certain Type Problem Solution Discussion Using an Object Literal to Bundle Data Problem Solution Discussion See Also Extra: Computed Property Names Checking If an Object Has a Property Problem Solution Discussion See Also Iterating Over All the Properties of an Object Problem Solution Discussion See Also Testing for an Empty Object Problem Solution Discussion Merging the Properties of Two Objects Problem Solution Discussion Customizing the Way a Property Is Defined Problem Solution Discussion See Also Preventing Any Changes to an Object Problem Solution Discussion Intercepting and Changing Actions on an Object with a Proxy Problem Solution Discussion Cloning an Object Problem Solution Discussion See Also Making a Deep Copy of an Object Problem Solution Discussion Creating Absolutely Unique Object Property Keys Problem Solution Discussion Creating Enums with Symbol Problem Solution Discussion See Also 8. Classes Creating a Reusable Class Problem Solution Discussion See Also Extra: Multiple Constructors Adding Properties to a Class Problem Solution Discussion See Also Extra: Private Fields Giving a Class a Better String Representation Problem Solution Discussion Using the Constructor Pattern to Make a Custom Class Problem Solution Discussion See Also Supporting Method Chaining in Your Class Problem Solution Discussion Adding Static Methods to a Class Problem Solution Discussion Using a Static Method to Create Objects Problem Solution Discussion Inheriting Functionality from Another Class Problem Solution Discussion Extra: Prototype Chains Organizing Your JavaScript Classes with Modules Problem Solution Discussion See Also 9. Asynchronous Programming Updating the Page During a Loop Problem Solution Discussion See Also Using a Function That Returns a Promise Problem Solution Discussion See Also Promisifying an Asynchronous Function That Uses a Callback Problem Solution Discussion See Also Executing Multiple Promises Concurrently Problem Solution Discussion Waiting for a Promise to Finish with Await and Async Problem Solution Discussion Creating an Asynchronous Generator Function Problem Solution Discussion See Also Using a Web Worker to Perform a Background Task Problem Solution Discussion See Also Adding Progress Support to a Web Worker Problem Solution Discussion See Also 10. Errors and Testing Catching and Neutralizing an Error Problem Solution Solution See Also Catching Different Types of Errors Problem Solution Discussion See Also Catching Asynchronous Errors Problem Solution Discussion See Also Detecting Unhandled Errors Problem Solution Discussion Extra: Logging Tools Throwing a Standard Error Problem Solution Discussion See Also Throwing a Custom Error Problem Solution Discussion See Also Writing Unit Tests for Your Code Problem Solution Discussion See Also Extra: Writing Tests First Tracking Test Code Coverage Problem Solution Discussion II. JavaScript in the Browser 11. Browser Tools Debugging JavaScript Problem Solution Discussion Analyzing Runtime Performance Problem Solution Discussion Identifying Unused JavaScript Problem Solution Discussion Using Lighthouse to Measure Best Practices Problem Solution Discussion 12. Working with HTML Accessing a Given Element and Finding Its Parent and Child Elements Problem Solution Discussion Traversing the Results from querySelectorAll() with forEach() Problem Solution Discussion Adding Click Functionality to an Element Problem Solution Discussion Finding All Elements That Share an Attribute Problem Solution Discussion Accessing All Elements of a Specific Type Problem Solution Discussion See Also Discovering Child Elements Using the Selectors API Problem Solution Discussion See Also Changing an Element’s Class Value Problem Solution Discussion Setting an Element’s Style Attribute Problem Solution Discussion Extra: Accessing an Existing Style Setting Advanced Adding Text to a New Paragraph Problem Solution Discussion Inserting a New Element in a Specific DOM Location Problem Solution Discussion Checking If a Checkbox Is Checked Problem Solution Discussion Adding Up Values in an HTML Table Problem Solution Discussion Extra: forEach and querySelectorAll Extra: Modularization of Globals Deleting Rows from an HTML Table Problem Solution Discussion Hiding Page Sections Problem Solution Discussion Creating Hover-Based Pop-Up Info Windows Problem Solution Discussion Validating Form Data Problem Solution Discussion Extra: HTML5 Form Validation Techniques Highlighting Form Errors and Accessibility Problem Solution Discussion See Also Creating an Accessible Automatically Updated Region Problem Solution Discussion 13. Fetching Remote Data Requesting Remote Data with Fetch Problem Solution Discussion Using XMLHttpRequest Problem Solution Discussion Submitting a Form Problem Solution Discussion Populating a Selection List from the Server Problem Solution Discussion Parsing Returned JSON Problem Solution Discussion Fetching and Parsing XML Problem Solution Discussion Sending Binary Data and Loading into an Image Problem Solution Discussion Sharing HTTP Cookies Across Domains Problem Solution Discussion Using Websockets to Establish a Two-Way Communication Between Client and Server Problem Solution Discussion See Also Long Polling a Remote Data Source Problem Solution Discussion 14. Data Persistence Persisting Information with Cookies Problem Solution Discussion Using sessionStorage for Client-Side Storage Problem Solution Discussion See Also Creating a localStorage Client-Side Data Storage Item Problem Solution Discussion See Also Persisting Larger Chunks of Data on the Client Using IndexedDB Problem Solution Discussion Simplifying IndexedDB with a Library Problem Solution Discussion 15. Working with Media Adding JavaScript to SVG Problem Solution Discussion Extra: Using SVG Libraries Accessing SVG from a Web Page Script Problem Solution Discussion Creating an SVG Bar Chart with D3 Problem Solution Discussion Integrating SVG and the Canvas Element in HTML Problem Solution Discussion Extra: Canvas? Or SVG? Running a Routine When an Audio File Begins Playing Problem Solution Discussion Controlling Video from JavaScript with the video Element Problem Solution Discussion 16. Writing Web Applications Bundling JavaScript Problem Solution Discussion Extra: Using npm Modules JavaScript and the Mobile Web Problem Solution Discussion See Also Writing a Progressive Web Application Problem Solution Discussion Testing and Profiling a Progressive Web Application Problem Solution Discussion Getting the Value of the Current URL Problem Solution Discussion Redirecting a URL Problem Solution Discussion Copying Text to a User’s Clipboard Problem Solution Discussion Enabling a Mobile-Like Notification in the Desktop Browser Problem Solution Discussion Extra: Web Notifications and the Page Visibility API Loading a File Locally in the Browser Problem Solution Discussion Extending the Possible with Web Components Problem Solution Discussion Choosing a Front-End Framework Problem Solution React Vue Svelte Angular III. Node.js 17. Node Basics Managing Node Versions with Node Version Manager Problem Solution Discussion Responding to a Simple Browser Request Problem Solution Discussion Interactively Trying Out Node Code Snippets with REPL Problem Solution Discussion Extra: Wait a Second, What Global Object? Reading and Writing File Data Problem Solution Discussion Advanced Getting Input from the Terminal Problem Solution Discussion See Also Getting the Path to the Current Script Problem Solution Discussion Working with Node Timers and Understanding the Node Event Loop Problem Solution Discussion 18. Node Modules Searching for a Specific Node Module via npm Problem Solution Discussion Converting Your Library into a Node Module Problem Solution Discussion See Also Taking Your Code Across Module Environments Problem Solution Discussion See Also Creating an Installable Node Module Problem Solution Discussion Extra: The README File and Markdown Syntax Writing Multiplatform Libraries Problem Solution Discussion Unit Testing Your Modules Problem Solution Discussion 19. Managing Node Using Environment Variables Problem Solution Discussion Managing Callback Hell Problem Solution Discussion Accessing Command-Line Functionality Within a Node Application Problem Solution Discussion Extra: Using Child Processes with Windows Passing Command-Line Arguments Problem Solution Discussion Creating a Command-Line Utility with Help from Commander Problem Solution Discussion Keeping a Node Instance Up and Running Problem Solution Discussion Monitoring Application Changes and Restarting During Local Development Problems Solution Discussion Scheduling Repeat Tasks Problem Solution Discussion Testing the Performance and Capability of Your WebSockets Application Problem Solution Discussion 20. Remote Data Fetching Remote Data Problem Solution Discussion Screen Scraping Problem Solution Discussion Accessing JSON-Formatted Data via a RESTful API Problem Solution Discussion See Also 21. Building Web Applications with Express Using Express to Respond to Requests Problem Solution Discussion Using the Express-Generator Problem Solution Discussion Routing Problem Solution Discussion Working with OAuth Problem Solution Discussion OAuth 2 User Authentication with Passport.js Problem Solution Discussion Serving Up Formatted Data Problem Solution Discussion Building a RESTful API Problem Solution Discussion Building a GraphQL API Problem Solution Discussion Index
Donate to keep this site alive
How to download source code?
1. Go to: https://www.oreilly.com/
2. Search the book title: JavaScript Cookbook: Programming the Web, 3rd Edition
, sometime you may not get the results, please search the main title
3. Click the book title in the search results
3. Publisher resources
section, click Download Example Code
.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.