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

Leave a Comment

Comments are moderated. No profanity. Only <a>...</a>, <blockquote>...</blockquote>, and <code>...</code> are allowed.

Seperate paragraphs by pressing the "Enter" key twice, or press it once to break to a new line.

17 Comments

#01, Oct 16 2007

Brian

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.

#02, Oct 16 2007

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

[…] 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 […]

#03, Oct 16 2007

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

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

#04, Oct 16 2007

links for 2007-10-17 at found_drama

[…] 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) […]

#05, Oct 16 2007

links for 2007-10-17 « Mandarine

[…] 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) […]

#06, Oct 21 2007

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

[…] Mastering Javascript […]

#07, Oct 23 2007

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

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

#08, Oct 28 2007

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

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

#09, Nov 01 2007

Ran Meriaz

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.

#10, Nov 01 2007

Anotaciones » Blog Archive » Para aprender javascript

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

#11, Nov 02 2007

JavaScript Framework : flash und so…

[…] 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. […]

#12, Dec 12 2007

Alexey Bass

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

#13, Feb 06 2008

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

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

#14, Apr 16 2008

40 Excellent Resources for JavaScript Coders | Six Revisions

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

#15, Apr 27 2008

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

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

#16, Apr 28 2008

40 Excellent Resources for JavaScript Coders | ???Blog

[…] 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″; […]

#17, May 03 2008

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

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