Created by Brendan Eich at Netscape for its browser, Navigator
JavaScript history names: Mocha -> LiveScript -> JavaScript -> ECMAScript
In today's world, ECMAScript is a standard whereas JavaScript is an implementation (will talk more about ECMAScript later)
single-threaded
There is one and only one thread called main thread handling tasks (what is a thread? think of it as worker in a factory)
JavaScript has been traditionally known as a single-threaded language, but modern JavaScript is no longer single-threaded thanks to web worker and service worker.
Hoisting is JavaScript's default behavior of moving all variable declarations to the top of the current scope (to the top of the current script or the current function)
A variable can be used before it has been declared