Assigning default values to variables

You can use the logical or operator || in an assignment expression to provide a default value:

var a = b || c;

The a variable will get the value of c only if b is falsy (if is null , false , undefined , 0 , empty string , or NaN ), otherwise a will get the value of b .

This is often useful in functions, when you want to give a default value to an argument in case isn't supplied:

function example(arg1) { arg1 || (arg1 = 'default value'); }

Example IE fallback in event handlers:

function onClick(e) { e || (e = window.event); }

The following language features have been with us for a long time, all JavaScript implementations support them, but they weren't part of the specification until ECMAScript 5th Edition:

The debugger statement

Described in: § 12.15 The debugger statement

This statement allows you to put breakpoints programmatically in your code just by:

// ... debugger; // ...

If a debugger is present or active, it will cause it to break immediately, right on that line.

Otherwise, if the debugger is not present or active this statement has no observable effect.

Multiline String literals

Described in: § 7.8.4 String Literals

var str = "This is a \ really, really \ long line!";