Level 0 “Java?”
All you know is that is has to do with the web. “Javascript is something like Java, right?”
Level 1 “I know Javascript”
You can make minor changes to a simple script, slab copy-pasted scripts from the internet onto your page and test scripts with an alert()-call.
Level 2 “I’ve made a page and this is the script”
- You can write simple functions and make calls to them.
- You can debug scripts with console.log().
- You know what an array is and when to use one.
Level 3 “I proudly use jQuery”
- You know how to attach scripts to events properly.
- You are able to write and work with “plain objects”.
- You know why eval() is evil, and you know who the evil twin sisters of eval() are.
Level 4 “Hold on, I’m stepping through my code in FireBug”
- You can write fairly complex functions and “subfunctions”.
- You have a fair understanding of what closures are, and what good they’ll do.
- You know that Javascript has only objects and no classes, and why.
- You have a deep understanding of what can be done on which browser, and what can’t.
Level 5 “My code is JSLint-proof”
- You can write pluggable and well-maintainable code with anonymous functions in complex constructs.
- You have a fair understanding of how a framework works internally, and why things work (or don’t) work the way they do.
- You have built a good number of tools in javascript for the purpose of education, fun, or just to “see if it can be done”.
- You know how to write proper object definitions with inheritance, the javascript way.
Level 6 “Writer of Narcissus, the javascript engine written in… javascript”
- You have a blog or other online resource with up-to-date resources that are actually useful.
- You participate in the development of a framework, javascript engine, or other javascript intensive tool such as FireBug
- Every now and then, you invent some new technique that no one else has thought of.
- You can write complex algorithms such as parsers/lexers, artificial intelligence, game theory, statistics, and algebra.
//copy-pasted from thefrontendlab.com