The Javascript Programming Language

Inspired by Douglas Crockford's lectures

History

LiveScript Designed by Brendan Eich
1995 - Shipped in Netscape Navigator 2.0
1996 - JScript at Microsoft
1998 - ECMAScript

Key Ideas

Values

Number


Math


Strings


Booleans


null and undefined


Date


Falsy values


Objects


Arrays

Arrays


Is Array?


Dynamic Typing


Reserved words

abstract else instanceof super boolean enum int switch break export interface synchronized byte extends let this case false long throw catch final native throws char finally new transient class float null true const for package try continue function private typeof debugger goto protected var default if public void delete implements return volatile do import short while double in static with

Operators

+ /


== !=


=== !==


&& (guard operator)


|| (default operator)


Statements

break


for


switch


try/catch


with


function


Scope


Quiz

Objects

Objects


Object linking


Object linking (the right way part 1)


Object linking (the right way part 2)


Classical inheritance


JSON - JavaScript Object Notation


JSON spec
JSON.parse/JSON.stringify support

Global Object

Encapsulation


eval


RegExp


toString()


Threads


Good code style can help avoid bugs

Always put { on the right


,


Common scope error


Strict mode


Modules

Asynchronous Module Definition


Debugging

Key Ideas

Credits

Rouben Meschian

rmeschian@gmail.com