O que "use strict" faz em JavaScript e por que é necessário? Explicação para iniciantes
Olá a todos! Comecei a estudar JavaScript e me deparei com uma construção estranha: `"use strict";`. Vi isso no início de alguns scripts e funções, mas não entendo para que serve e o que faz.
Aqui está um exemplo de código que funciona sem `"use strict"`:
```javascript
x = 10; // Não declarei a variável com var, let ou const
console.log(x); // Exibe 10
```
Mas quando adiciono `"use strict"`:
```javascript
"use strict";
x = 10; // Erro: x is not defined
console.log(x);
```
Por que no primeiro caso o código funciona e no segundo dá erro? Ouvi dizer que `"use strict"" torna o código "mais seguro", mas não entendo em que consiste essa segurança. E outra pergunta: preciso usá-lo sempre? Será que ele só deixa o código mais lento?
Expliquem, por favor, para iniciantes: o que é essa diretiva, como funciona e por que todos os desenvolvedores experientes a recomendam? De preferência com exemplos para ficar claro.
<<>>