Por muito tempo, o JavaScript evoluiu sem problemas de compatibilidade. Novos recursos foram adicionados à linguagem, enquanto as funcionalidades antigas não foram alteradas.
Isso teve a vantagem de nunca quebrar o código existente. Mas a desvantagem é que qualquer erro ou decisão imperfeita tomada pelos criadores do JavaScript ficava presa na linguagem para sempre.
Este foi o caso até 2009, quando o ECMAScript 5 (ES5) apareceu. Adicionou novos recursos à linguagem e modificou alguns dos existentes. Para manter o código antigo funcionando, a maioria dessas modificações está desativada por padrão. Você precisa habilitá-los explicitamente com uma diretiva especial: "use strict" .
A diretiva se parece com uma string: "use strict" ou 'use strict' . Quando localizado no topo de um script, todo o script funciona de maneira “moderna”.
Por exemplo:
“usar estrito”; // este código funciona da maneira moderna ...
Em breve aprenderemos funções (uma forma de agrupar comandos), então vamos observar antecipadamente que "use strict" pode ser colocado no início de uma função. Fazer isso ativa o modo estrito apenas nessa função. Mas geralmente as pessoas usam isso para todo o script.
Certifique-se de que “use strict” esteja no topo
Por favor, certifique-se de que "use strict" esteja no topo dos seus scripts, caso contrário o modo strict pode não estar habilitado.
O modo estrito não está ativado aqui:
alerta("algum código");
// "use strict" abaixo é ignorado - deve estar no topo
“usar estrito”;
// modo estrito não está ativado Apenas comentários podem aparecer acima de "use strict" .
Não há como cancelar use strict
Não existe uma diretiva como "no use strict" que reverta o mecanismo ao comportamento antigo.
Uma vez que entramos no modo estrito, não há como voltar atrás.
Ao usar um console de desenvolvedor para executar código, observe que ele não use strict por padrão.
Às vezes, quando use strict faz diferença, você obterá resultados incorretos.
Então, como realmente use strict no console?
Primeiro, você pode tentar pressionar Shift + Enter para inserir várias linhas e colocar use strict no topo, assim:
'usar estrito'; <Shift+Enter para uma nova linha> // ...seu código <Entre para executar>
Funciona na maioria dos navegadores, nomeadamente Firefox e Chrome.
Caso contrário, por exemplo, em um navegador antigo, existe uma maneira feia, mas confiável, de garantir use strict . Coloque-o dentro deste tipo de embalagem:
(função() {
'usar estrito';
// ...seu código aqui...
})()A pergunta pode parecer óbvia, mas não é assim.
Alguém poderia recomendar iniciar scripts com "use strict" … Mas sabe o que é legal?
O JavaScript moderno suporta “classes” e “módulos” – estruturas de linguagem avançadas (certamente iremos abordá-las), que permitem use strict automaticamente. Portanto, não precisamos adicionar a diretiva "use strict" , se a usarmos.
Então, por enquanto "use strict"; é um convidado bem-vindo no topo de seus scripts. Posteriormente, quando seu código estiver todo em classes e módulos, você poderá omiti-lo.
A partir de agora, precisamos saber sobre use strict em geral.
Nos próximos capítulos, à medida que aprendermos os recursos da linguagem, veremos as diferenças entre os modos estrito e antigo. Felizmente, não existem muitos e eles realmente tornam nossas vidas melhores.
Todos os exemplos neste tutorial assumem o modo estrito, a menos que (muito raramente) seja especificado de outra forma.