ABSTRACT

CoffeeScript appeared in late 2009 with the goal of making web application clients easier to write. CoffeeScript employs whitespace-awareness to facilitate writing long strings, a task that many languages make surprisingly clumsy. CoffeeScript carries over many other features of JavaScript, including Object.create and the new operator. In programming language theory, the scope of a binding is the region of the code where the binding is in force. Programming languages vary in their ability to express values. JavaScript and CoffeeScript both use lexical scoping: scopes are determined by looking only at the source code and not relying on any runtime behavior. A comprehension is an expression that produces an array. CoffeeScript, again like JavaScript, uses null for the intentional absence of information and undefined to indicate no information is known. CoffeeScript expressions, types, and variables mimic their JavaScript counterparts.