O que a diretiva Use Strict faz em JavaScript

O que a diretiva Use Strict faz em JavaScript

O JavaScript evoluiu por um longo tempo sem problemas de compatibilidade e modificado pela adição de novos recursos, mas não alterando os recursos antigos. Tinha suas vantagens e desvantagens e a vantagem era que não permitia a quebra do código existente, no entanto, a desvantagem era que qualquer erro cometido pelos desenvolvedores ou criadores estava preso no JavaScript para sempre.

Ele continuou até o ECMAScript 5 (também conhecido como ES5) foi introduzido em 2009, cuja vantagem foi que ele adicionou novos recursos ao modificar os atuais. No entanto, por padrão em JavaScript, essas modificações estão desligadas. É preciso habilitá -lo com uma mensagem ou comando especial que é o "uso rigoroso".

O que é "use rigoroso"

A definição básica de "Use Strict" é que ele permite que o JavaScript execute o código no modo rigoroso. Modo rigoroso é algo em que não se pode usar variáveis ​​não declaradas. O modo rigoroso também nos ajuda a evitar possíveis erros/erros, se não seguimos corretamente a sintaxe JavaScript. Também nos ajuda quando fabricamos erros de digitação, o que resulta em uma nova variável indesejada. Também podemos dizer que o objetivo básico do modo rigoroso é fazer com que nosso código pareça mais limpo.

Universalmente suportado?

Deve -se ter em mente que o uso rigoroso não é universalmente apoiado pelos navegadores. A maioria dos navegadores modernos suporta “Use Strict”, com exceção do Internet Explorer 9 e as versões abaixo de 9. Os seguintes navegadores com versões acima ou as versões especificadas suportam “Use Strict”.

Mozilla Firefox Vantagem da internet Google Chrome Ópera Safári
4.0 10.0 13.0 12.1 6.0

Sintaxe do modo rigoroso

Podemos implementar ou declarar o uso rigoroso adicionando na parte superior de uma função ou codificação a palavra -chave "use rigoroso" de maneira exata. Se o declararmos no topo do nosso código, ele terá um escopo global, o que significa que todo o nosso código JavaScript será executado no modo rigoroso.

Vamos ver dois exemplos. No primeiro exemplo, usaremos uma variável não declarada sem usar “Use Strict”. No segundo exemplo, usaremos o modo rigoroso da mesma maneira.

Exemplo 1:

name = "linux dica";
console.log (nome);

Saída: Dica do Linux

Exemplo 2:

"Use rigoroso";
name = "linux dica";
// Isso causará um erro que o nome não é definido

““Nome não está definido”O erro será causado no cenário acima.

Vamos dar uma olhada em outro exemplo em que o modo rigoroso é usado dentro da função. O escopo "Use Strict" será funcional I-E limitado à função.

Exemplo 3:

function myfunc ()
"Use rigoroso";
y = 4;
// Isso causará um erro
// O erro será que Y não está definido

myfunc ();

Neste exemplo, a primeira variável "nome" não terá um erro, pois não estamos usando o modo rigoroso. No entanto, na função, receberemos um erro de "Y" não é declarado, pois estamos usando o modo "Use Rigic". Deixe -me enfatizar novamente que, neste exemplo, o escopo do modo estrito é restrito à função "myfunc ()".

Por que usar o modo rigoroso?

Agora que analisamos a sintaxe do modo rigoroso e alguns exemplos, vamos explorar a questão de por que usar o modo rigoroso?

A vantagem de usar o modo rigoroso é que ele torna nosso código mais limpo, como mencionado anteriormente. Além disso, o modo rigoroso nos ajuda a escrever JavaScript seguro. Muitas vezes ignoramos a sintaxe ruim. Isso pode nos causar problemas mais tarde. O modo rigoroso nos ajuda a converter código de sintaxe informal/ruim em erros reais para que possamos lidar com eles de acordo.

No Exemplo 1, vimos que não declaramos uma variável, mas o console JavaScript não deu nenhum erro. Tratou a variável "nome" como uma variável global. No modo rigoroso, evitamos isso, pois o modo rigoroso lança um erro que o nome não é definido. Isso nos ajuda a evitar declarar acidentalmente variáveis ​​globais em nosso código.

Restrições no modo rigoroso

Vamos discutir o que não é permitido ou não é permitido no modo rigoroso. Podemos ver no Exemplo 1 que não podemos usar uma variável no modo rigoroso se não for definido ou declarado. O mesmo vale para objetos. Temos que declarar objetos em modo rigoroso, caso contrário, receberemos um erro.

Exemplo 4:

"Use rigoroso";
idioma =
Primeiro: "inglês",
segundo: "chinês"
;
// Isso nos lançará um erro como objeto "linguagem" não é definido

Modo rigoroso também não nos permite excluir uma variável ou uma função.

Exemplo 5:

"Use rigoroso";
const pi = 3.143;
excluir pi;
// Isso causará um erro
function myfunc ()
//Olá Mundo

exclua myfunc;
// Isso causará um erro

Além disso, o modo rigoroso nos restringe de usar palavras -chave reservadas em futuras versões JavaScript ou atualmente usando. Por exemplo, não podemos usar implementos, deixar, pacote, interface, rendimento, estático, protegido, público, privado, argumentos, etc.

Palavra -chave "this" no modo rigoroso

Palavra -chave "This" é usada em JavaScript para se referir a um objeto que pertence. A palavra -chave “isto” se comporta de maneira diferente no modo rigoroso. Suponha que você use um objeto não declarado com o uso de "this". JavaScript retornará "indefinido" no modo rigoroso, em vez do objeto.

Exemplo 6:

"Use rigoroso";
function myfunc ()
alerta (isso);
// Isso nos mostrará um alerta de indefinido

// chamando a função agora
myfunc ();

Conclusão

O uso de palavras -chave rigoroso ajuda os desenvolvedores de JavaScript a executar seu código JavaScript no modo rigoroso, restringindo o uso de variáveis ​​não declaradas e ajuda os desenvolvedores, evitando possíveis erros ou bugs.

Estudamos a diretiva "Use Strict" nesta postagem e discutimos como e por que usar a diretiva "Usar rigorosa" e também discutida, o navegador que suporta modo rigoroso. Realizamos um controle sobre os conceitos usando exemplos. Ao estudar este artigo, sabemos como tornar nosso código mais limpo e como evitar variáveis ​​globais desnecessárias com o uso de "usar rigoroso". Deixe -me enfatizar novamente que, se você estiver trabalhando com "Use Strict", sempre o declare no topo de um bloco de código ou topo da função para que ele funcione.