This document provides an overview of scripting languages and JavaScript. It discusses how scripting languages have lightweight data structures, syntax, typing and metaprogramming. JavaScript is presented as a typical scripting language, with an object-based structure and weak dynamic typing. Problems with JavaScript are outlined, such as a lack of modules and static typing leading to errors. An ultra-brief JavaScript tutorial provides rules on its object model and type conversions.