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?