1. Строгий режим делает невозможным случайное создание глобальных переменных.
2. Он заставляет присваивания, которые всё равно завершились бы неудачей, выбрасывать исключения.
var undefined = 5; // выдаст TypeError
3. Попытки удалить неудаляемые свойства будут вызывать исключения (в то время как прежде такая попытка просто не имела бы эффекта):
delete Object.prototype; // выдаст TypeError
4. Он требует, чтобы все свойства, перечисленные в сериализованном объекте, встречались только один раз.
var o = { p: 1, p: 2 }; // !!! синтаксическая ошибка
5. Он требует, чтобы имена аргументов в объявлении функций встречались только один раз.
function sum(a, a, c) { // !!! синтаксическая ошибка
return a + a + c; // ошибка, если код был запущен
}