What Makes Javascript Weird and AWESOME – Pt 1