Please see “JavaScript references” (§8.3).
This book usually mentions if a feature is part of ECMAScript 5 (as required by older browsers) or a newer version. For more detailed information (including pre-ES5 versions), there are several good compatibility tables available online:
Please see the following sources:
JavaScript often fails silently. Let’s look at two examples.
First example: If the operands of an operator don’t have the appropriate types, they are converted as necessary.
> '3' * '5'
15
Second example: If an arithmetic computation fails, you get an error value, not an exception.
> 1 / 0
Infinity
The reason for the silent failures is historical: JavaScript did not have exceptions until ECMAScript 3. Since then, its designers have tried to avoid silent failures.
This question is answered in “How to not break the web while changing JavaScript” (§5.6).
“Trying out JavaScript code” (§10.1) explains how to do that.