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 »
270 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 »
270 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
May 22, 2013 at 7:52 AM
Nested Views, Routing, And Deep Linking With AngularJS
Hi, Just a quick thank you. As it happens, for my own purposes, the pending ui-router work being done in native angular is likely the one I'll adopt, but your exploration, code and documentation of ... read »
May 22, 2013 at 4:43 AM
How Do You Use The ColdFusion CFParam Tag?
'<cfparam>' or 'isDefined()and <cfset>' performs the same task.Is there any difference? ... read »
May 21, 2013 at 7:46 PM
Using Plupload For Drag & Drop File Uploads In ColdFusion
No luck. At least I have uncovered the cause, URLScan 3.1. Here is what I see in the IIS log when a file is over 30mb. 2013-05-21 23:29:05 10.105.45.128 GET /plupload/assets/jquery/jquery-1.8. ... read »
May 21, 2013 at 6:12 PM
Using Plupload For Drag & Drop File Uploads In ColdFusion
Ben, I did not see you after Pete Freitag's Lockdown session at cfObjective but he said that IIS sets file size limits at 30MB by default which just happened to be the threshold for file size when ... read »
May 21, 2013 at 11:51 AM
Ask Ben: Parsing Very Large XML Documents In ColdFusion
Looking at my first ever XML document that I have to parse and put into MS SQL 2000 with CF8. I get it to list the desired Field name, many times over, and have a long list of this field name displa ... read »
May 21, 2013 at 9:25 AM
Turning Off and On Identity Column in SQL Server
you are awesome..i am lucky to get this blog between such a garbage one....Thanks, Prashant ... read »
May 20, 2013 at 4:38 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
@Dana, Your confusion is well founded, since this is a very confusing features. In fact, it ONLY works if you use array notation. Meaning, that this: arrayToList( query[ "columnName" ] ) ... read »
May 20, 2013 at 4:34 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
I was thinking chicken and the egg, I wouldn't have expected it to work in the valuelist going in I guess. Maybe I just need a beer, long day :) ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools