RSS

JavaScript: Required Reading

11 Mar

My colleagues often ask me how they can improve at JavaScript. I usually start by replying with the obvious (and correct) answer of “you need to write more of it”. However, since supplying only that answer would be a total dick move, I have also been casually gathering and pruning a list of [IMHO] the most important and/or confusing concepts in JavaScript.

The following is the short-list of JavaScript concepts that I feel one must understand before they can [eventually] achieve mastery of the JavaScript language.

  1. Truthy & Falsy:
    http://javascriptweblog.wordpress.com/2011/02/07/truth-equality-and-javascript/

  2. Prototypes:
    http://javascriptweblog.wordpress.com/2010/06/07/understanding-javascript-prototypes/

  3. Variable scope and hoisting:
    http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting

  4. Closures & IIFEs:
    1. http://javascriptweblog.wordpress.com/2010/10/25/understanding-javascript-closures/
    2. http://benalman.com/news/2010/11/immediately-invoked-function-expression/

  5. The `this` keyword:
    http://javascriptweblog.wordpress.com/2010/08/30/understanding-javascripts-this/

  6. Functions — Intermediate
    Functions are definitely the biggest and most important part of JavaScript. If you’ve never worked with a language that treats functions as a first-class citizen, it’s about time you did:

    1. Function.call: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call
    2. Function.apply: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply
    3. The `arguments` keyword:
      1. https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments
      2. http://javascriptweblog.wordpress.com/2011/01/18/javascripts-arguments-object-and-beyond/

  7. Functions — Advanced
    Because of functions and closure, JavaScript can also apply lots of advanced concepts:

    1. Partial application and currying: http://benalman.com/news/2012/09/partial-application-in-javascript/
    2. Monads and promises: http://www.youtube.com/watch?v=dkZFtimgAcM

  8. More on Promises — Advanced
    1. Promises/A spec: http://wiki.commonjs.org/wiki/Promises/A
    2. My favorite Promises library, Q: http://documentup.com/kriskowal/q/
    3. jQuery Promises:
      1. Why do they exist?: http://terlson.blogspot.com/2012/09/why-do-jquery-promises-exist.html
      2. Chained and parallel asynchronous calls: http://terlson.blogspot.com/2012/09/promise-series-part-2-chained-and.html

 

What do you think?

Do you have any other “required reading” topics? If so, please add a comment and share any good articles/posts on the topic that you might like, too.

 
4 Comments

Posted by on 2013-03-11 in JavaScript

 

4 responses to “JavaScript: Required Reading

  1. वीर

    2013-03-16 at 11:00 AM

     
  2. akmalirfan

    2013-03-17 at 2:53 AM

    Reblogged this on Teknologi Marcapada.

     
  3. Rick Thomas (@irickt)

    2013-03-17 at 10:09 AM

    Check this benchmark of promise performance. “when” is looking good compared to “q”

    https://github.com/cujojs/promise-perf-tests#test-results

     
  4. Joshua Clanton (@joshuacc)

    2013-03-17 at 4:19 PM

    Not so much required reading topics, but I do have a list of required reading books that I put together recently. :-)

    http://designpepper.com/blog/books-every-javascript-developer-should-own

     
 
Follow

Get every new post delivered to your Inbox.

Join 131 other followers

%d bloggers like this: