Asm.js
Speaking about how you write code and that it matters, I also have to say a few words about Asm.js.
This is a very deep, very broad topic that is way out of scope for me to handle here - but in short Asm.js is a technique that pushes the modern JSVM to it's absolute limits. In was discovered that JavaScript could operate at an insane performance level, but only if you avoided functions and elements connected to the DOM (document object model).
A sub-set of functions were singled out as "JIT guaranteed", meaning that those functions were guaranteed to be converted directly to machine-coode. Some developers decided to take this to the very edge, and modified the Clang C/C++ compiler so that it would output a custom bytecode format (that they invented on their own). A bytecode format that mapped directly to these low-level JS functions.
The really cool thing about Asm.js is, that it's just a large array of bytes, hence Asm.js runs on every JavaScript engine available (even BESEN which is written in Freepascal). What is even more impressive is that the runtime engine, that reads these esoteric bytecodes and acts on them - is a small and highly efficient JavaScript snippet. It's all vanilla JavaScript and breaks no rules and violates no laws. A truly awesome project both in scope and implication.
So fancy names and cryptic data structures aside - Asm.js is at the end of the day ordinary JavaScript pushed to it's limits. Which also means that it can never run faster than JavaScript itself.
For that, you need WebAssembly.