JavaScript Enlightenment By Cody Lindley

Posted July 26, 2011 at 10:42 AM by Ben Nadel

Tags: Javascript / DHTML, Books

Two years ago, I read jQuery Enlightenment by Cody Lindley. I vividly remember being very impressed with how much information Cody had gotten across to the reader with such a concise book. Cody's explanatory style favors simple code over prose, leaving the reader with bite-sized examples that he or she can easily "grok" (as Cody might put it). And so, when I was asked to be a technical reviewer for his new book - JavaScript Enlightenment - not only was I flattered, I was also very excited to be part of a book that would, no doubt, continue the trend in excellent set forth by its predecessor.


 
 
 

 
JavaScript Enlightenment by Cody Lindley, review by Ben Nadel.  
 
 
 

JavaScript Enlightenment is not quite as concise as jQuery Enlightenment; however, Cody definitely makes heavy use of his "technical thin-slicing" approach. In fairness, JavaScript, as a language, is a bit of a beast. Although it is a beautiful language, the complexity and flexibility of its inner-workings do require a deeper exploration than that of the (comparatively simple) jQuery API. Still, JavaScript Enlightenment is a quick read (about 140 pages) that one can easily get through in a single day.

In JavaScript, just about everything is an object; or, can be used as an object. To understand objects and the relationships between them is to understand JavaScript. And so, it is with this in mind that JavaScript Enlightenment takes the reader on a very thorough exploration of objects in a JavaScript context.

Not only does Lindley explain how most of the native Objects work (String, Number, Object, Function, etc.), he talks about user-defined objects and object constructors. He also talks about how objects work in the prototype chain, how inheritance works, and how variable references get resolved in the scope chain. He looks at how properties work - how they are set, gotten, and deleted. He talks about breaking out of function execution and about dynamically changing function execution context at runtime.

In short, Lindley finds just about every nook and cranny related to Objects in JavaScript and shines a light on it.

Now, this book is not a book about design patterns. It doesn't cover application architecture or give the reader a bevy of tips and tricks for writing code. It simply explains the way JavaScript works at a fundamental level. While this might sound basic, the fact is, we live in a time where developers can write "jQuery" or "Prototype" or "ExtJS" code without really understanding the underlying language. I can't tell you how many times I've been at a MeetUp group and heard a developer say something like, "Now that I know jQuery, I'm thinking about learning JavaScript."

Libraries like jQuery, Prototype, Backbone, and Spine are paving the way for complex, client-side applications. This is the future of web development. But in order to really take advantage of these libraries, it is critical that you fully understand the way JavaScript works as a language. And to do that, you need to understand Objects. JavaScript Enlightenment by Cody Lindley will make sure that happens.




Reader Comments

Jul 26, 2011 at 2:39 PM // reply »
4 Comments

"Now that I know jQuery, I'm thinking about learning JavaScript."

OMG... Rully?

How old are these peop... (stops, looks around at coworkers)... nevermind.


Jul 26, 2011 at 8:54 PM // reply »
273 Comments

@Matt, true dat:

Now that I know what's in Cody Lindley's book, I'm thinking about learning how to read.


Jul 27, 2011 at 4:39 AM // reply »
3 Comments

thanks for the info - just bought one :-)

will dig into it!


Jul 27, 2011 at 1:06 PM // reply »
14 Comments

hehehe... i'll admit i'm one of those developers. I'll make sure to pick up this book :)


Aug 1, 2011 at 12:59 PM // reply »
1 Comments

Yeah, I do not fully understand these JavaScript concepts (Prototype/Object), yet I can still use frameworks like jQuery and Dojo. Probably need to deep dive into these base language concepts some day. I'm familiar with Java OO and it's foundations... but that hasn't helped these JavaScript concepts sink in yet.


Aug 1, 2011 at 2:17 PM // reply »
9 Comments

I find it interesting that Cody didn't seem to include any date or copyright information on the book (not even the build-in tools that PDF's usually offer.)

Does he intend this to be some sort of Creative Commons thing?

(Cuz' if so, I'm totally sharing this with all my friends. ;-P)


Aug 1, 2011 at 5:03 PM // reply »
273 Comments

@Doug,

My understanding is that, under current US copyright law, ALL creative expression is now intrinsically copyrighted, even if the author doesn't explicitly declare it copyrighted.

If you create a work that's derivative of a work protected by intrinsic copyright, it could be "innocent infringement". (You have the defense "I didn't know the author intended it to be copyrighted.") As I understand it, that's the purpose of "takedown notices". That is, you haven't committed a tort yet because copyright wasn't declared, but you have to take it down, now that you know it's copyrighted.

I'm not a lawyer. And some of that is word-of-mouth from intellectual property lawyers I've talked to (= second hand information, subject to miscommunication).

Also, I haven't bought the book yet, because I'm handling some work emergencies. So I don't know whether or not Cody said "You can use these snippets.". But in general, it's always safest to rely on one's own creative expression.


Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
Jun 18, 2013 at 9:20 PM
Mapping AngularJS Routes Onto URL Parameters And Client-Side Events
I couldn't find examples of passing multiple arguments using the when() routing statement so figured out through trial and error that you can pass multiple arguments using the following format: .whe ... read »
Jun 18, 2013 at 3:39 PM
Experimenting With The Amazon Simple Storage Service (S3) API Using ColdFusion
Hi Ben, THANKS! While not bleeding edge, it is new to me & I like learning new things every day! ... read »
Jun 18, 2013 at 12:30 PM
Disabling Auto-Correct And Auto-Capitalize Features On iPhone Inputs
Also spellcheck="false" should be mentioned as part of html5 specs ... read »
Jun 18, 2013 at 8:40 AM
Using Named Functions Within Self-Executing Function Blocks In Javascript
Hi Ben, you forgot to mention the most important thing for named self-executing functions - they can be referenced by name ONLY inside their execution context (which is parens in this case), it mean ... read »
dee
Jun 18, 2013 at 7:01 AM
My Safari Browser SQLite Database Hello World Example
hai ben, this program is really good i could understand the concept but i dint know how to save it and how to open it as you have done in the video can u give that details pls ... read »
Jun 18, 2013 at 6:04 AM
Clearing Inline CSS Properties With jQuery
Thanks a lot for for post! It helped me a lot... after being stuck since 24 hrs.. found solution from your post. Thanks again! ... read »
Jun 18, 2013 at 2:31 AM
SOTR 2013 - The Best Conference I Never Went To
I keep watching it, should keep me happily distracted until SotR14 ;) ... read »
Jun 17, 2013 at 9:45 PM
What If All User Interface (UI) Data Came In Reports?
@Jonah, As I was reading what you wrote, it occurred to me that maybe I do something similar to that in some of my client-side code. In an application I'm working on, there are a bunch of unrelated ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools