Chapter 6. ECMAScript 5

This book has mostly talked about ECMAScript 3 because it’s the most widely distributed version of the language. However, the latest standard is ECMAScript 5.1 (version 4 was a dead-end branch that was eventually scrapped). Most modern browsers support ES5. You should know about what’s new in ES5 even if you currently have to support legacy browsers.

The three main areas of updates are:

  • Introduction of strict mode
  • Object and property attributes
  • Some new APIs

Strict Mode

Strict mode is not backward compatible, and is therefore an opt-in feature. Once per function or once per program you can opt into strict mode by using:

"use strict";

Since this is just a string statement, old browsers won’t complain and will simply ignore it. But an engine that understands strict mode will treat your code more strictly, disallowing some JavaScript features and constructs which, over the years, have proven to be more trouble than they’re worth. This book doesn’t teach any of these shady practices, so there’s nothing for you to unlearn.

Examples of features that trigger an error in strict mode are:

  • The use of the with statement
  • Use of undeclared variables
  • Use of arguments.callee or arguments.caller
  • Attempts to assign to read-only properties (e.g., window.Infinity = 0;)
  • Attempts to delete nonconfigurable properties (you will see what configurable means in a bit)
  • Object literals with duplicate properties
  • Function parameters with duplicate names (because, surprisingly, function ...

Get JavaScript for PHP Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.