JavaScript Strict Mode

O que é e porque usá-lo ECMAScript5 introduziu o “use strict”, que basicamente faz o browser interpretar o código JavaScript no modo mais rigoroso. Quando usamos o JS em strict mode, o browser mostra os erros que antes eram silenciados, como utilizar uma variável que não foi declarada, utilizar palavras reservadas no código, ou utilizar recursos

O que é e porque usá-lo

ECMAScript5 introduziu o “use strict”, que basicamente faz o browser interpretar o código JavaScript no modo mais rigoroso. Quando usamos o JS em strict mode, o browser mostra os erros que antes eram silenciados, como utilizar uma variável que não foi declarada, utilizar palavras reservadas no código, ou utilizar recursos da linguagem que já foram declarados obsoletos e até mesmo, proibindo o uso de partes da linguagem que são tidas como problemáticas, nos forçando a escrever um código de melhor qualidade e ajudando a capturar bugs mais precocemente. Sem habilitarmos o modo restrito, o código abaixo é executado sem lançar qualquer excepção, ainda que seja uma má prática utilizar a variável “nome” sem declará-la:

Se habilitarmos o strict mode, será lançada uma excepção para notificar que temos um problema no código:

Habilitando

Podemos habilitar o modo restrito em diferentes âmbitos: A primeira forma é a nível de arquivo. Para isso, basta por a string "use strict"; no começo de um arquivo JS para que todo o código deste arquivo seja executado no modo restrito. Nenhum código pode vir antes da declaração “use strict”; (apenas whitespace e comentários são permitidos). Caso um trecho de código apareça antes, o modo restrito não é disparado.

A outra forma de uso é a nível de função. Quando usado dentro de uma função, apenas o código dentro dela é executado no modo restrito. Todo o código externo continua a ser executado normalmente.

Hoje é muito comum concatenarmos arquivos para diminuir a quantidade de dados trafegados e o número de requisições. Para não disparar o modo restrito em código que não foi testado neste modo, é interessante deixarmos o código que roda e foi testado para rodar no modo restrito isolado. As funções de invocação imediata são perfeitas para isso.

O que muda?

O _strict mode trouxe várias mudanças na forma de como o JavaScript é executado. Mas vou focar nas principais partes. Caso queira descer mais ainda na toca do coelho, o artigo do _Dmitry Soshnikov é uma ótima leitura sobre todos os detalhes das mudanças que o strict mode trouxe.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *