Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming

by: Marijn Haverbeke (0)

Completely revised and updated, this best-selling introduction to programming in JavaScript focuses on writing real applications.

JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.

This much anticipated and thoroughly revised third edition of
Eloquent JavaScript dives deep into the JavaScript language to show you how to write beautiful, effective code. It has been updated to reflect the current state of Java¬Script and web browsers and includes brand-new material on features like class notation, arrow functions, iterators, async functions, template strings, and block scope. A host of new exercises have also been added to test your skills and keep you on track.

As with previous editions, Haverbeke continues to teach through extensive examples and immerses you in code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. You start by learning the basic structure of the JavaScript language as well as control structures, functions, and data structures to help you write basic programs. Then you'll learn about error handling and bug fixing, modularity, and asynchronous programming before moving on to web browsers and how JavaScript is used to program them. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you'll learn how to:

- Understand the essential elements of programming, including syntax, control, and data - Organize and clarify your code with object-oriented and functional programming techniques - Script the browser and make basic web applications - Use the DOM effectively to interact with browsers - Harness Node.js to build servers and utilities

Isn't it time you became fluent in the language of the Web?

* All source code is available online in an inter¬active sandbox, where you can edit the code, run it, and see its output instantly.



    (Part 1: Language)

    Values, Types, and Operators

    Program Structure


    Data Structures: Objects and Arrays

    Higher-order Functions

    The Secret Life of Objects

    Project: A Robot

    Bugs and Errors

    Regular Expressions


    Asynchronous Programming

    Project: A Programming Language

    (Part 2: Browser)

    JavaScript and the Browser

    The Document Object Model

    Handling Events

    Project: A Platform Game

    Drawing on Canvas

    HTTP and Forms

    Project: A Pixel Art Editor

    (Part 3: Node)


    Project: Skill-Sharing Website

The Quotes

A fragment of code that produces a value is called an expression.

The collection of bindings and their values that exist at a given time is called the environment.

There is only one value in JavaScript that is not equal to itself, and that is NaN (“not a number”).

The Reviews

If you don't have years of programming experience, and want to get started in JavaScript, do not buy this book. The practice problems in chapter 2 will have you pulling your hair out. And if you look at the solutions, you will want to slap the author with the book. It moves too fast and assumes too much.This book seems to assume you've already been programming in JavaScript for, I dunno, 3-5 years, and need a refresher.THIS IS NOT A BEGINNING PROGRAMMING BOOK!

I once took a class in JavaScript and we had a teacher that went through the basics very nice and slowly, making everything easy to understand. That teacher got sick and so for a brief period of time he was replaced by a substitute. This substitute teacher made the class very difficult. He used difficult examples and overloaded the lectures with information that made my head feel like it was going to explode! I grew to feel very frustrated at that teacher. But i also learned a lot.This book is like that 2nd teacher. It's difficult and packed with information. Some of the examples feel unnecessarily difficult. As if trying to learn classes and constructors isn't difficult enough, he goes on to use an example of class syntax to make a matrix. And each chapter is like this where there's a couple examples that are almost unnecessarily difficult to follow. It can be frustrating.But, it's also a treasure trove of information. And anything I don't understand, I can just look up simpler explanations. I think that's powerful because it points to things I can look up and learn more deeply about.I don't recommend this book to beginners. I recommend having a mild understanding of JavaScript fundamentals before going into this book. If you have learned JavaScript basics but want to go deeper then I recommend this book. I think this book would benefit anyone who isn't a total expert or a total beginner.

I have so many books and many books on JavaScript. This so far seems to be my favourite of the bunch. I have the paperback book (Which the binding came unglued almost immediately - only con on this book I have against it) and I have the eBook. I use the eBook the most sitting on my desktop next to my laptop and external keyboard/mouse and find I can learn from it easily. I've already learned so much about ES6+ (ECMAScript) not starting with only Vanilla and moving forward but intertwining the newer changes to the language with the old and showing along the way (whether on purpose or not) how to refactor the code so it is more concise using the new shortcuts implement into JavaScript over the last few years. And it builds on topics, gives test questions to rattle your mind a bit and you can tell it was written by someone with Industry inside experience. And one interesting thing I learned from it which the books pounds into you is you need to manage the fine line between shorter/less/cleaner code and efficiency. Sometimes if performance is in question slopppy and longer written out code might suit your needs better. It's a 5 star book. I've been waiting many months for this books to come out and it was worth the wait.

I am a JavaScript developer with a lot of real-world experience, but I lacked the ability to fundamentally rationalize and explain the "WHY" of decisions I was making. This was, of course, problematic when I was interviewing for a new job.I turned to books to get a more well-rounded understanding of the language I had been using for so long, and Eloquent JavaScript was one of the most helpful for me. Most everything you need is covered inside with code examples written in ECMAScript 2015 (ES6) syntax which is ideal for programmers working with modern web application frameworks.This book is available completely free from the publisher (Google search "Eloquent JavaScript"), but the physical copy is delightfully high quality. It is certainly worth your money. Maybe give the online version a look and, if you find the content good/helpful/whatever, consider purchasing the paperback.I would recommend this book for anyone who works with JavaScript. For a beginner, I would pair it with a book on programming fundamentals and get started coding literally anything.

I really wanted to like this book as I wanted to get up and running with JavaScript as soon as possible. It's let me down. I think it comes down to "horses for courses". This horse (me) does not appreciate this course (Eloquent JavaScript).I'm an old-school programmer. Picked up Kernighan & and Ritchie's "C Programming Language" when it first came out in the 1980s. Loved it! Succinct but incredibly precise. I read it over two days and really KNEW the language!"Eloquent JavaScript" is neither succinct nor precise. It spends pages on a topic without helping you understand what the inner workings of the topic are. This simply does not work for me, though it might for others. The reason you program is because natural languages like English are not precise in a way that allows a computer can actually implement the sentences - at least not yet. A good book on programming should bridge the gap between English and the stuff a computer can implement. Eloquent JavaScript NEVER took me to the other side of that bridge.The problem is partly mine. Perhaps the author expects the reader to "bridge" the gaps on his/her own. But I've programmed in at least a half dozen languages. Sure I can guess what the details are... The description of "closures" on pages 48-49 is vague and left me struggling to understand this important topic.As an alternative to Eloquent JavaScript, I highly recommend the "You Don't Know JS" series by Kyle Simpson!

These pretty rhinestones will last a long time. They're easy to use and give you the affect that you're looking for in your crafts.

These appear to be exactly what I need. I haven’t used them yet, but they also look to be good quality.

Good for makeup

Exactly like it was pictured. Adhesive was very strong.

Without a doubt, I think this is one of the best book for learning JavaScript. This book is especially good if this will be the first programming language that you learn. The features of JavaScript are thoroughly taught and the basic concepts of modern computer programming is also taught. The author has a writing style that is very engaging, even entertaining at times, which is help in a subject as dry as learning a new programming language. I highly recommend it.

I came for the JavaScript but stayed for the dry humor. A really decent resource for anyone just wanting to learn more about programming as a general topic but through the lense of JS. Very economical writing that rides a nice balance between beginner concepts and more complex ideas. I'm not advanced enough to pick apart any errors they made in their writing but it seems to be held in decently high regard by the computing community. The author also made a decent companion site with resources/answers for the practice lessons they give at the end of each chapter. They even included a little in-browser code editor to run the code examples you produce if you go through their practice lessons. Kind of nice if you just want to just play with his ideas a bit and not bother with firing up a whole IDE session on your computer.

The fragrance

I like the fragrance.

I love the fragrance, but it’s a little dry on the skin.

Please everyone on my team read this as it makes all our lives easier when we deal with your code

Very detailed and thorough, I was getting frustrated with the online course I was taking, the explanations in this book helped me understand what I was doing. Finally finding this resource was like taking a breath of fresh air.

Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming
⭐ 4.6 💛 1400
kindle: $23.99
paperback: $18.89
Buy the Book