Avatar ·

O que 'use strict' faz em JavaScript e por que é necessário?

Olá a todos! Comecei a estudar JavaScript e notei que em alguns exemplos de código, no início do arquivo ou da função, escrevem `'use strict';`. Sinceramente, não entendo muito bem para que isso serve e o que realmente faz. Tentei escrever um script simples sem essa diretiva, e tudo funcionou. Por exemplo, criei acidentalmente uma variável sem `let`, `const` ou `var`: ```javascript function test() { myVar = 10; // Esqueci de escrever let console.log(myVar); } test(); // Exibe 10 ``` Mas se eu adicionar `'use strict';`: ```javascript 'use strict'; function test() { myVar = 10; // Erro! console.log(myVar); } test(); // ReferenceError: myVar is not defined ``` Agora o código falha com um erro. Parece que sem `'use strict'` tudo funcionava mais simples, mas ouvi dizer que desenvolvedores experientes recomendam fortemente usá-lo. Qual é o problema? Por que complicar a vida se tudo funciona assim? Que outras "armadilhas" do JavaScript ele corrige? E quando devo usá-lo?