Welcome! Please enjoy this work-in-progress.
How to read this book:
- Use the navigation on the bottom of the screen to read through the chapters in order.
- Jump to a specific chapter using the links in the table of contents below.
Contents
Preface
Introduction
- Who This Book Is For
- What This Book is Not
- Overview of Material
- Conventions
- Further Readings
Part I - Introduction to the Web
Client-Server Communication
- Uniform Resource Locators (URLs)
- Hypertext Transfer Protocol
- Client-Server Separation
Web Standards
- Background
- Separation of Concerns
- Standards Organizations
Part II - HTML
Introduction to HTML
- Structure & Syntax
- The Head and Document Metadata
Page Rendering
- Loading Assets & The Critical Rendering Path
HTML Elements
- Using Semantic Elements
- Structural Elements
- Interactive Elements
Forms
- Accepting User Input
- The
form
Element - Inputs
- Client-Side Input Validation
Images & SVG
- Images on the Web
- The
img
Element - Responsive Images
- SVG
Part III - CSS
Introduction to CSS
Selectors & Rulesets
- Simple Selectors
- Combinators
- Pseudo-classes
- Pseudo-elements
- Selector groups
- Application of style rules
The Cascade & Inheritance
- Importance
- Specificity
- Source Order
- Inheritance
CSS Units
- Length
- Color
calc
Intro to Layout
- The Box Model
- Flow Context:
block
andinline
Elements - Position
Responsive Layout with Flexbox & Grid
- Flexbox
- Grid
- Media Queries
Part IV - JavaScript
Introduction to JavaScript
- History & Standards
- Conventions
- Running JavaScript
Grammar & Syntax
- Characters
- Comments
- Expressions
- Operators
- Statements
- Semicolons
Data Types
typeof
Operator- Numbers
- Strings
- Objects
null
&undefined
- Primitive Wrapper Objects
Type Coercion
- Truthiness
- Comparison & Equality
Functions
- Function Declarations
- Function Expressions
- Arrow Functions
Scopes, Closures, & Variables
- Lexical Scopes
- Closure
- Variables
Error Handling
- Syntax Errors
- Runtime Exceptions
Error
Objects- Standard Runtime Error Types
- Error Avoidance
Asynchrony
- Execution Contexts & The Stack
- Concurrency vs. Parallelism
- The Event Loop
- Callback Function Pattern
- Promises
- Async Functions
this & Execution Contexts
- Execution Contexts
- Default Binding
- Implicit Binding
- Explicit Binding
Flexible Objects
- Using Object Literals
- Shorthand Property Names
- Accessor Properties: Getters and Setters
- Property Descriptors
Prototypal Patterns
- The Prototype Chain
- Implementing Classes with Prototypes
Data Collections & Iteration
- Built-In Collection Objects
- Iterables
- Functional Iteration
- Normal Objects as Collections
Transferring Data with JSON
Modules & Bundling
Part V - Web Applications
The DOM API – JavaScript in the Browser
- DOM Manipulation
- Handling Events
Build Tools
Modern Browser APIs
©2019 Nicholas D. Freeman. All rights reserved.
The content in this book is provided for educational purposes. Every effort has been made to ensure that the content is accurate and helpful at publishing time. However, this is not an exhaustive treatment of the subjects.
Best practices in this field are constantly changing, and changes in professional practices may become necessary. Practitioners must rely upon their own knowledge and experience in evaluating and using and information or methods described herein. No liability is assumed for losses or damages due to the use of information provided.
Product and company names mentioned herein may be trademarks of their respective owners. These names are used only in an editorial fashion with no intention of infringement of the trademarks. Where these names appear, and the author was aware of the trademark at the time of writing, the designations have been printed with initial capital letters.