`strict mode` no JavaScript

`strict mode` no JavaScript

Este artigo explica o strict mode em JavaScript.

YouTube Video

strict mode no JavaScript

No JavaScript, o strict mode é um recurso introduzido no ECMAScript 5 (ES5) para tornar o código mais seguro e prevenir erros. Ao usar o strict mode, certas síntaxes flexíveis e recursos potencialmente arriscados são desabilitados, e verificações de erro mais rigorosas são aplicadas. Isso permite que os desenvolvedores evitem comportamentos inesperados e escrevam códigos mais robustos e de alto desempenho.

Ativando o strict mode

Para ativar o modo estrito, adicione a seguinte diretiva no início do seu código.

1"use strict";

Essa declaração pode ser aplicada a todo o script ou de forma individual por função. Por exemplo, se aplicado a todo o script, você pode escrevê-lo da seguinte forma:.

1"use strict";
2
3function example() {
4    // Strict mode is applied
5}

Se aplicado por função, você pode escrevê-lo da seguinte forma:.

1function example() {
2    "use strict";
3    // Strict mode is applied only within this function
4}

O strict mode é aplicado por escopo, então também pode ser ativado dentro de uma função. Além disso, como o strict mode é ativado por padrão nos módulos, não é necessário declará-lo individualmente dentro do módulo.

Principais características e diferenças do strict mode

Usar o strict mode altera alguns dos comportamentos padrão do JavaScript. Aqui estão os principais exemplos.

Proibição de variáveis globais implícitas

No JavaScript normal, omitir declarações de variáveis as define automaticamente como variáveis globais, mas no strict mode, isso resulta em um erro.

1"use strict";
2
3x = 10;  // Error: x is not defined

As variáveis devem sempre ser declaradas usando var, let ou const.

Restrição no uso de palavras reservadas

Palavras-chave potenciais do JavaScript no futuro (por exemplo, implements, interface, package, etc.) não podem ser utilizadas como nomes de variáveis ou funções no strict mode.

1"use strict";
2
3var package = "strict mode";  // Error: Unexpected strict mode reserved word

Mudanças no comportamento do this

No modo normal, o this dentro de uma função se refere ao objeto global (por exemplo, window nos navegadores), mas no strict mode, this é undefined.

1"use strict";
2
3function example() {
4    console.log(this);  // undefined
5}
6
7example();

Isso ajuda a prevenir erros causados pelo uso incorreto do this.

Proibição de deletar propriedades não deletáveis

No modo normal, tentar excluir propriedades não deletáveis de objetos é ignorado sem erro, mas no strict mode, lança um erro.

1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name;  // Error: Cannot delete property 'name'

Proibição de nomes duplicados de parâmetros

No modo normal, declarar parâmetros com o mesmo nome várias vezes é permitido, mas no strict mode, isso gera um erro.

1"use strict";
2
3function example(a, a) {
4    // Error: Duplicate parameter name not allowed in this context
5}

Proibição do uso da declaração with

A instrução with pode diminuir a legibilidade do código e é proibida no strict mode.

1"use strict";
2
3with (Math) {
4    // Error: Strict mode code may not include a with statement
5}

Vantagens do strict mode

O strict mode melhora a segurança e a eficiência do código de várias maneiras.

Melhoria na detecção de erros

No strict mode, erros que passam despercebidos no modo normal são detectados, permitindo que os desenvolvedores identifiquem bugs potenciais mais cedo. Por exemplo, evita a criação de variáveis globais não intencionais e o uso indevido de palavras reservadas.

Desempenho aprimorado

No strict mode, os motores de JavaScript podem otimizar o código de maneira mais eficiente. Como resultado, a velocidade de execução pode melhorar.

Maior segurança do código

O tratamento de this torna-se mais rigoroso, impedindo o acesso a objetos globais desnecessários, melhorando assim a segurança do código. Além disso, a restrição ao uso de palavras reservadas evita futuros conflitos com palavras-chave.

Compatibilidade e considerações

O strict mode foi introduzido no ECMAScript 5 e não é suportado em navegadores lançados antes disso. No entanto, ativar o strict mode é simplesmente ignorado por navegadores não compatíveis, sem quebrar o script. Portanto, ele geralmente pode ser usado de forma segura.

Ao introduzir o strict mode em um grande projeto existente, testes rigorosos são cruciais para evitar erros inesperados.

Conclusão

O strict mode do JavaScript é uma funcionalidade extremamente útil para melhorar a qualidade do código. Em particular, para projetos de grande escala ou desenvolvimento em equipe, recomenda-se o uso ativo do modo estrito para prevenir bugs e erros inesperados, bem como para melhorar a legibilidade e a mantenibilidade do código.

Compreender e aplicar corretamente o strict mode ajuda a evitar armadilhas do JavaScript e permite um desenvolvimento mais seguro e eficiente.

Você pode acompanhar o artigo acima usando o Visual Studio Code em nosso canal do YouTube. Por favor, confira também o canal do YouTube.

YouTube Video