O que é `"use strict";`?
Quais são as vantagens e desvantagens de usa-lo?Topics
JAVASCRIPT
Edit on GitHub
'use strict'
é uma declaração usada para habilitar o modo estrito em scripts inteiros ou funções individuais. O modo estrito é uma maneira de optar por uma variante restrita do JavaScript.
Vantagens
- Faz com que seja impossível criar variáveis globais acidentalmente.
- Faz com que as atribuições que falhariam silenciosamente disparem uma exceção.
- Faz tentativas de excluir propriedades não deletáveis lançam uma exceção (onde antes da tentativa simplesmente não teria efeito).
- Exige que os nomes dos parâmetros de função sejam exclusivos.
this
éundefined
no contexto global.- Ele captura alguns erros comuns de programação, lançando exceções.
- Ele desabilita recursos que são confusos ou mal concebidos.
Desvantagens
- Muitos recursos faltantes que alguns desenvolvedores podem estar acostumados.
- Não há mais acesso a
function.caller
efunction.arguments
. - Concatenação de scripts escritos em diferentes modos estritos pode causar problemas.
No geral, os benefícios superam as desvantagens e não há realmente a necessidade de depender dos recursos que o modo estrito proíbe. Todos nós deveríamos estar usando o modo estrito por padrão.