Aguarde...

6 de dezembro de 2021

O que é o modo estrito do JavaScript?

O que é o modo estrito do JavaScript?

O modo estrito em JavaScript restringe as regras para certos comportamentos. Aqui está tudo o que você precisa saber sobre isso.

JavaScript é uma linguagem que perdoa. Algumas de suas sintaxes são opcionais e a linguagem se recupera de erros com mais facilidade do que muitas outras. Mas essa pegada vem com uma penalidade: pode ser mais fácil introduzir bugs e o código inconsistente é mais difícil de ler.

Felizmente, se você quiser exercer mais disciplina, há uma maneira fácil de fazer isso: modo estrito. O modo estrito é uma forma de solicitar que o JavaScript reaja de forma mais decisiva ao encontrar problemas em seu código.

O que é um modo estrito?

Diversas linguagens usam o conceito de modo estrito: um modo que avalia e executa o código com mais rigor. Você pode estar familiarizado com o doctype estrito de HTML, que reprova certos elementos e atributos.

Perl, outra linguagem de script interpretada, há muito tem seu próprio modo estrito. Este modo proíbe certos tipos de expressão insegura.

Como faço para usar o modo estrito em JavaScript?

Dentro de um script, coloque uma instrução “use strict” logo no início, antes de qualquer outra instrução:

// this entire script will be in strict mode
'use strict';

Observe que você pode incluir um comentário antes dele, mas nenhuma declaração. Você pode habilitar o modo estrito em um arquivo JavaScript ou no início de um bloco de script em um arquivo HTML. Você também pode ativar o modo estrito em uma base função por função:

function strict() {
// Function-level strict mode syntax
'use strict';
return "This function is strict";
}
function loose() {
return "This function is NOT strict";
}

Depois de habilitar o modo estrito, certifique-se de testar seu código. Se você estiver trabalhando com a web, abra um console JavaScript para identificar novos erros.

O que o modo estrito do JavaScript faz?

O que é o modo estrito do JavaScript?

Em suma, o modo estrito será menos tolerante com certos tipos de código problemático. Em vez de ignorar problemas e continuar a execução, certos erros irão interromper o script. Isso geralmente é mais seguro do que continuar em circunstâncias indesejáveis.

Previne Globals Acidentais

O melhor exemplo contra o qual o modo estrito protege é a criação de variáveis ​​globais acidentais. Em execução normal, este código:

myVar = 17;

Ele criará uma propriedade chamada myVar no objeto global, supondo que você não tenha declarado myVar anteriormente. Em um navegador da web, o objeto global geralmente é a janela:

console.log(window.myVar);
>> 17

Se você incluir uma instrução “use strict”, no entanto, verá um erro no console, algo como:

Uncaught ReferenceError: myVar is not defined

A razão pela qual isso é tão útil é que ele detecta um caso comum de erro de digitação. É fácil digitar incorretamente um nome de variável e muitas linguagens nos pegariam nesse tipo de erro.

Mas JavaScript, por padrão, simplesmente assume o escopo do objeto global e continua como se nada estivesse errado. Alguns códigos podem depender intencionalmente desse comportamento, que é algo que você deve estar ciente ao decidir usar o modo estrito.

Torna a falha explícita

Algum comportamento em JavaScript falha, mas o faz silenciosamente. Você pode não saber sobre esses erros, a menos que os esteja verificando especificamente. Por exemplo, NaN é uma propriedade especial do objeto global que representa um número inválido. Esta propriedade é somente leitura, mas você ainda pode tentar gravá-la:

NaN = 2;
>> 2

Mas mesmo que pareça que a atribuição foi bem-sucedida, não foi:

NaN
>> NaN

No modo estrito, você obterá um erro real informando que você não pode atribuir a NaN. Este código usa uma função para que você possa demonstrar o modo estrito no console:

javascript
function badNaN() { "use strict"; window.NaN = 2; }
>> undefined
badNan()
>> Uncaught TypeError: Cannot assign to read only property 'NaN' of object '#'
at badNaN (:1:46)
at :1:1

Este é um exemplo clássico que mostra, embora a ignorância possa ser uma bênção, às vezes é melhor saber se algo dá errado.

Avisa sobre parâmetros duplicados

O exemplo final trata de um recurso pouco conhecido do JavaScript. Você pode ficar surpreso ao saber que os nomes dos parâmetros não precisam ser exclusivos:

function dupeParam(a, a, c) { console.log(a); }
>> undefined
dupeParam(2, 4, 8)
>> 4

Observe que o JavaScript atribui o valor mais recente a um parâmetro duplicado. Agora, esse comportamento não é particularmente útil. Na verdade, seria mais útil para o JavaScript nos dizer que é um erro, e é exatamente isso que o modo estrito faz:

function dupeParam(a, a, c) { "use strict"; }
<< Uncaught SyntaxError: Duplicate parameter name not allowed in this context

Use o modo estrito para obter confiança extra de código

Boas práticas e meios de aplicá-las andam de mãos dadas. Em alguns contextos, como uma função de programação profissional, você desejará exercer o máximo de disciplina possível. Mesmo se você estiver apenas trabalhando em um projeto de código aberto de hobby, o mantenedor pode preferir usar o modo estrito como padrão.

Em última análise, depende de você, mas é útil saber que uma mão amiga está disponível. Como programador, você deve sempre estar atento às melhores práticas e ao que pode fazer para aplicá-las.

Postado em Blog
Escreva um comentário