Skip to main content. Skip to secondary content (sidebar).

Mastering JavaScript — concept and resource guide

There is not a single interpreted language used today that causes more excitement, confusion, disdain, and conflict than JavaScript. The language is so incredibly flexible that it is difficult to separate a developer’s choice of coding style from JavaScript best practices. If you are an absolute beginner (as we all once were), this can be an incredibly frustrating experience.

The immensity of information available today is also adversely focused on AJAX, frameworks and APIs. I wonder how designers and developers manage to wade through the cruft to even begin learning the basics. If you are like me, and have evolved along with JavaScript, then the state of the language makes a little more sense. However, if you are in the first steps of your journey, it might seem like a long and winding road ahead.

This concept and resource guide is a way to deal with these issues. Instead of listing a compendium of resources too vast to matter to anyone, I have listed only those that I feel truly contribute to the process of mastering JavaScript. Preceding the list is an outline of advanced JavaScript concepts that will help “light the master’s path”.

JavaScript Concepts

Access Control

A JavaScript design pattern that prohibits another script from accessing portions of functionality in your JavaScript is enforcing “access control”. In a language like C# or Java, access control is explicitly declared with access control keywords such as private, public or protected. With JavaScript, achieving access control is a bit more work.

Accessible JavaScript

The term “accessible JavaScript” refers to movements that support RIAs in conjunction with accessibility. The most notable methodology is Hijax, a term coined by Jeremy Keith, the author of DOM Scripting. Roger Johansson is a successful Web developer who also promotes accessible JavaScript techniques on his popular blog 456 Berea Street.

Closures

Arguably the most difficult concept in JavaScript to understand, closures are complicated, and can have harmful consequences if not implemented correctly. Closures in JavaScript are essentially a design pattern that allows an inner (nested) function to access the variables associated with an outer function, even after that function has been executed (returned).

Classical OOP

In several technical circles, JavaScript is often referred to as a prototype-based or object-based language, as it lacks some features available in full-blown object oriented programming. Regardless, in order to be a successful Web developer, you must understand the details surrounding classical object oriented programming with JavaScript.

Concepts in AJAX

AJAX is conceptually quite simple. Hundreds of examples are available, and the number of tutorials is too numerous to count these days. However, within an intricate RIA, several complicated problems can arise for the budding architect. Performance issues play center stage, and it is important to explore alternative methods of implementing AJAX solutions.

Memory Leaks

One of the most difficult issues plaguing JavaScript programmers today is memory leaks brought on by a combination of browser bugs and poor coding practices. Even though memory leaks are often identified with Internet Explorer, Web applications in several browsers have been known to freeze up the client interface and cause excessive memory leakage.

Namespaces and Self-invoking Functions

At the forefront of every JavaScript library is a namespace. Although the style of execution can vary slightly, the concept is incredibly important if you are considering the release of an API or framework. Creating a non-conflicting namespace (which typically involves self-invoking functions), is both friendly and unobtrusive, and it should be a part of your repertoire.

JSON and Object Literal Notation

JavaScript Object Literal Notation and JSON both rely completely on JavaScript’s implementation of the hash object. Although a subset of object oriented programming with JavaScript, object literal notation is becoming a widely accepted alternative to functions as constructors for objects. I suggest first reading the classical OOP articles, and then move on to these articles.

Security

While security continues to be a major concern among Web developers, much of the hype surrounding XSS (cross-site scripting) has diminished. However, techniques for overcoming security flaws in JavaScript should be well known by all JavaScript programmers, new and old. Exploits are discovered often, and keeping up with hacker trends is important.

JavaScript Topics, Articles & Tutorials (Publications)

JavaScript Topics, Articles & Tutorials (Personal)

JavaScript Development Tools

JavaScript Frameworks

A day late and a dollar short... comments are closed.

01  |  October 16th, 2007 at 3:31 am

Jason Bartholme beat me to the punch this week with his post 70+ JavaScript Resources for Every Web Developer, but I took a different approach with this post.

I invite you to check out his list as well, even though a few of our resources are the same.

Comment by:

Brian

02  |  October 16th, 2007 at 9:16 am

[...] O Brian, do D’Bug, resolveu resumir em uma única página um pouco de tudo sobre Javascript. Você vai encontrar desde uma curta introdução ao assunto a [...]

Comment by:

Javascript-on-a-page, ou "Tudo o que você queria encontrar sobre Javascript" | Tecnologia de Informação - Desenvolvimento e Educação

03  |  October 16th, 2007 at 4:38 pm

[...] Mastering JavaScript — concept and resource guide » d’bug (tags: javascript reference resources programming guide tutorials web tutorial **) [...]

Comment by:

links for 2007-10-17 « Simply… A User

04  |  October 16th, 2007 at 4:43 pm

[...] Mastering JavaScript — concept and resource guide via d’bug: excellent looking round-up of articles, essay, tutorials, etc. on JavaScript’s core (and fringe) concepts (tags: ajax javascript webdev reference) [...]

Comment by:

links for 2007-10-17 at found_drama

05  |  October 16th, 2007 at 8:27 pm

[...] Mastering JavaScript — concept and resource guide Instead of listing a compendium of resources too vast to matter to anyone, I have listed only those that I feel truly contribute to the process of mastering JavaScript. (tags: ajax javascript learning list reference tutorial webdev) [...]

Comment by:

links for 2007-10-17 « Mandarine

06  |  October 21st, 2007 at 7:00 pm

[...] Mastering Javascript [...]

Comment by:

Blog at veanndesign.com » Sunday Weekly Roundup #13 - 10/21/2007

07  |  October 23rd, 2007 at 4:54 pm

[...] Mastering JavaScript ? concept and resource guide » d?bug [...]

Comment by:

things to look at (October 17th - October 23rd) | stimulant

08  |  October 28th, 2007 at 10:18 am

[...] Mastering JavaScript — concept and resource guide » d’bug Good categorized overview of available web resources. (tags: javascript development tutorial overview) [...]

Comment by:

Craig Vidler | Weblog » links for 2007-10-28

09  |  November 1st, 2007 at 4:14 am

I invite you to look at Bindows. Probably the richest and most complete OOP Ajax SDK.
While at it, look into InfiView (developed in Bindows) - amazing Ajax graphical application toolkit.

Comment by:

Ran Meriaz

10  |  November 1st, 2007 at 11:01 am

[...] Mastering JavaScript — concept and resource guide gracias a Brian Reindel [...]

Comment by:

Anotaciones » Blog Archive » Para aprender javascript

11  |  November 2nd, 2007 at 3:16 am

[...] Inzwischen gibt es auch schon eine Vielzahl von Frameworks oder Librarys für JavaScript. Eine Liste mit ganz Unterschiedlichen Ansätzen und Funktionsumfängen gibt es hier. [...]

Comment by:

JavaScript Framework : flash und so…

12  |  December 12th, 2007 at 1:14 pm

Thanks for work you did with gathering all together! Very helpful even for people day-to-day working with JavaScript.

Comment by:

Alexey Bass

13  |  February 6th, 2008 at 9:54 am

[...] Mastering JavaScript — concept and resource guide [...]

Comment by:

Web development links - Part I » www.crankup.net

14  |  April 16th, 2008 at 4:43 pm

[...] Mastering JavaScript — concept and resource guide - A great list of resources pertaining to grokking JS. [...]

Comment by:

40 Excellent Resources for JavaScript Coders | Six Revisions

15  |  April 27th, 2008 at 2:19 am

[...] Mastering JavaScript — concept and resource guide - A great list of resources pertaining to grokking JS. [...]

Comment by:

40 Excellent Resources for JavaScript Coders - A Great Place for News, Articles & Free Web Resources

16  |  April 28th, 2008 at 6:01 pm

[...] Mastering JavaScript — concept and resource guide - A great list of resources pertaining to grokking JS.  Read More var blogurl=”http://www.asflex.cn”; var needemail=”1″; var nowurl=”http://www.asflex.cn/wp-content/themes/yuewei/jscript/getpost.php?id=86″; var md5 = “a19e90065b309c09c4b9ad73783907d9″; [...]

Comment by:

40 Excellent Resources for JavaScript Coders | ???Blog

17  |  May 3rd, 2008 at 7:23 am

[...] Mastering JavaScript — concept and resource guide - A great list of resources pertaining to grokking JS. « Bedava 36 Icon Kayna?? Siteler Sorry, no comments yet. [...]

Comment by:

KMC | Web & Internet Teknolojileri Günlü?ü » Javascript Kodlar? için 40 Kaynak Site

18  |  June 2nd, 2008 at 7:20 pm

[...]

Comment by:

Javascript Overwhelming « Coldfusion Yummy Mother

19  |  June 2nd, 2008 at 10:40 pm

[...]

Comment by:

Future of Existing Projects « Coldfusion Yummy Mother

20  |  August 29th, 2008 at 12:31 am

[...] Mastering JavaScript — concept and resource guide - A great list of resources pertaining to grokking JS. [...]

Comment by:

40 Excellent Resources for JavaScript Coders « Jonsunhee’s Weblog

21  |  December 23rd, 2008 at 10:03 am

[...] JavaScript — concept and resource guide Published December 23, 2008 JavaScript Mastering JavaScript — concept and resource guide » d’bug - here’s a list of advanced javascript.Access Control * Private Members in JavaScript * How [...]

Comment by:

Mastering JavaScript — concept and resource guide « BIRDEGG’s WEBLOG