Директива use strict




"use strict";
// этот код будет работать по современному стандарту ES5

Отличия строгого и неограниченного режима:


- нельзя использовать необъявленную переменную

так можно:
var i = 0;
а так нельзя
i = 0; 

- нельзя дублировать ключи в объекте

(function() {
  "use strict";
  var x = {
    a: 1,
    b: 2,
    a: 3
  }
}());
 
- нельзя дублировать аргументы

function sum(a, a) {...

- нельзя переназначать аргументы

function a(x) {
  arguments[0] = 2;
  console.log(x); // напечатает 2
}

function b(x) {
  "use strict";
  arguments[0] = 2;
  console.log(x); // напечатает 1
}

a(1);
b(1);


Другие отличия по этим ссылкам
В чем различие между строгим режимом и неограниченным режимом?
Использование "use strict" в JavaScript 
Переход к строгому режиму
Strict mode
ES6: Перед тем, как вы начнёте