JavaScript Checklist
JS bits that are essential or worth getting familiar with.
List is open and if you feel something is missing, feel free to update it by forking it on GitHub.
Variables
- defining variables (default value,
var
andlet
operators) - variable scopes (local and global, block in ECMAScript6)
- variable hoisting Adequately Good - JavaScript Scoping and Hoisting
undefined
vsnull
Operators
- operators precedence
- how
+
behaves on strings and numbers ||
and&&
Web Reflection - Please Stop Reassigning For No Reason!- real life usage for bitwise operators
|
~
,~~
,>>>
typeof
vsinstanceof
Objects
- global object in browser and in strict mode
- built-in objects vs string literals
- securing the objects with ECMA5 methods
Arrays
- iterating
for...in
vsfor
- ECMA5 methods
map
,filter
,forEach
,each
,some
,reduce
,reduceRight
- removing elements from array (
splice
method vsdelete
) - difference between array literals and object literals
Functions
- defining (difference between
function foo(){}
andvar foo = function(){}
) - invoking (as function, as method, as constructor,
call
/apply
,bind
(ECMA5)) - default return value and constructor return value
arguments
- the array-like object (not an array!)arguments.length
vsfunctionName.length
- function context -
this
! - the
_this
/that
/self
pattern - closures!
JSON
- a subset of JS? JSON: The JavaScript subset that isn’t
Inheritance
prototype
object and prototype chain- constructors and difference between
fun()
andnew fun()
Browsers and DOM
- memory leaks in browsers
- compilers
Script loading
- asynchronous/deferred script loading
- scripts concatenation
Events
- DOM events bubbling and capturing Quirksmode - Event order
- cancelable events
- event delegation
- custom events
Event loop
- timers,
setInterval
,setTimeout
, how to use them
Misc
- how
eval
works - design patterns in JS Adequately Good - JavaScript Module Pattern: In-Depth Essential JavaScript Design Patterns For Beginners, Volume 1
- memory management Socialcast Engineering - JavaScript Memory Management
Reference
HTML5 valid