Bundles
About the Book
What readers have to say:
“Spent the afternoon reading @raganwald's JavaScript Allongé, the Six Edition. Highly recommended. Let the refactoring begin!”—Marcus Vorwaller
“I think it’s one of the best tech books I’ve read since Sedgewick’s Algorithms in C.”—Andrey Sidorov
“Your explanation of closures in JavaScript Allongé is the best I've read.”—Emehrkay
“It's a different approach to JavaScript than you'll find in most other places and shines a light on some of the more elegant parts of JavaScript the language.”—@jeremymorrell
“This book is awesome and blowing my mind in a great way.”—Johnathan Mukai
“Enjoying Javascript Allonge... I think it's the best discussion of functional programming in js I've found so far.”—Nicholas Faiz
“Reading JavaScript Allongé by @raganwald. This book is so good that it's blowing my mind.”—Guillermo PascualAnd listen to the JavaScript Jabber Book Club Podcast about JavaScript Allongé!
Read More Read Less
-
Feedback
Share this book
Table of Contents
-
A Pull of the Lever: Prefaces
- About JavaScript Allongé
- What JavaScript Allongé is. And isn’t.
- Forwards to the First Edition
- A Personal Word About The Recipes
- Legend
-
Prelude: Values and Expressions over Coffee
- values are expressions
- values and identity
- A Rich Aroma: Basic Numbers
-
The first sip: Basic Functions
- As Little As Possible About Functions, But No Less
- Ah. I’d Like to Have an Argument, Please.
- Closures and Scope
- That Constant Coffee Craving
- Naming Functions
- Combinators and Function Decorators
- Building Blocks
- Magic Names
- Summary
-
Recipes with Basic Functions
- Partial Application
- Unary
- Tap
- Maybe
- Once
- Picking the Bean: Choice and Truthiness
-
Composing and Decomposing Data
- Arrays and Destructuring Arguments
- Self-Similarity
- Tail Calls (and Default Arguments)
- Garbage, Garbage Everywhere
- Plain Old JavaScript Objects
- Mutation
- Reassignment
- Copy on Write
- Tortoises, Hares, and Teleporting Turtles
- Functional Iterators
- Making Data Out Of Functions
-
Recipes with Data
- mapWith
- Flip
- Why?
- A Warm Cup: Basic Strings and Quasi-Literals
-
Stir the Allongé: Objects and State
- Encapsulating State with Closures
- Composition and Extension
- This and That
- What Context Applies When We Call a Function?
- Method Decorators
- Summary
-
Recipes with Objects, Mutations, and State
- Memoize
- getWith
- pluckWith
- Deep Mapping
- The Coffee Factory: “Object-Oriented Programming”
-
Served by the Pot: Collections
- Iteration and Iterables
- Generating Iterables
- Lazy and Eager Collections
- Interlude: The Carpenter Interviews for a Job
- More Iterable Mapping Operations
- Interactive Generators
- Basic Operations on Iterables
- A Coffeehouse: Symbols
-
Life on the Plantation: Metaobjects
- Why Metaobjects?
- Mixins, Forwarding, and Delegation
- Later Binding
- Delegation via Prototypes
- Shared Prototypes
- Decaffeinated: Impostors
-
Finish the Cup: Constructors and Classes
-
Constructors and
new - Why Classes in JavaScript?
-
Classes with
class - Object Methods
- Why Not Classes?
- Summary
-
Constructors and
-
Recipes with Constructors and Classes
- Bound
- Send
- Invoke
- Fluent
- Colourful Mugs: Symmetry, Colour, and Charm
- Biscotti on the Side: Method Decorators
-
Con Panna: Composing Class Behaviour
- Extending Classes with Mixins
- Functional Mixins
- Preventing Property Conflicts
- Reducing Coupling
- Resolving Conflicts with Policies
- Closing Time at the Coffeeshop: Final Remarks
-
The Golden Crema: Appendices and Afterwords
- How to run the examples
- Thanks!
- JavaScript Spessore
- Reading JavaScript Allongé on Kindle
- Copyright Notice
- About The Author
Read More Read Less