Что означает строка use strict в JavaScript?

Увидел такую строку в начале js скрипта, что она означает? Как это влияет на работу кода?

У js было много обновлений, и в язык всегда добавляли новые обновления но не меняли старые возможности так как некоторые сайты могли бы просто сломаться, такое было до появления ECMAScript 5, он и добавил новые возможности и внес ряд исправлений в старые возможности, но используя его старый код, написанный до его появления не работал бы, для того что бы такого не случилось придумали такую штуку как use strict, она в свою очередь делает перевод кода в режим полного соответствия современных стандартов, но есть небольшая проблема что она не поддерживается в IE9-.

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

Ставят это в начале кода как ты и сказал, и ставят только один раз, указав однажды отменить нельзя.

Так же можно указывать данную директиву для функции, в такой ситуации строгие правила (современные) будут действовать только в пределах функции.

Вообще пока что тут есть ряд нюансов, так как есть библиотеки js, которые написаны без учета данной директивы, и они могут работать не корректно, поэтому следует убедится что используемая библиотека содержит данную директиву если вы пишете код используя директиву у себя.

В общем это полезная вещь которая позволяет освежить язык, добавить нововведения и убрать старые недостатки)