Executando verificação de segurança...
36

Métodos para usar o `console.log`

⚠️ Atenção! Este artigo foi traduzido do inglês para o português a partir da fonte informada ao final do artigo, escrita pelo autor Al-Naubit. A tradução é fornecida apenas para fins informativos e não deve ser considerada como uma tradução oficial. Não me responsabilizo por quaisquer erros ou imprecisões que possam ter sido introduzidos na tradução. É altamente recomendável que você verifique a precisão do conteúdo com a fonte original em inglês.

Você ainda está usando console.log para todas as suas necessidades de depuração de JavaScript em 2023?

É hora de atualizar suas habilidades e descobrir todo o poder do objeto de console JavaScript.

De console.table a console.time, esses métodos e truques avançados ajudarão você a melhorar a qualidade e a legibilidade de sua saída de depuração e facilitar a solução e correção de problemas em seu código.

Então, por que não se juntar aos depuradores ninjas do JavaScript em 2023 e aprender essas técnicas essenciais? Seu código agradecerá.

😞 O problema

Um dos maiores problemas com o uso de just console.log é que ele pode sobrecarregar seu código e dificultar a leitura. Além disso, não é muito informativo por conta própria. Ele apenas gera o valor de tudo o que você passa para ele sem nenhum contexto ou informação adicional.

Com isso em mente, aqui estão dez métodos e truques de objeto de console JavaScript que você deve conhecer (e experimentá-los; sei que é mais rápido apenas console.log, mas pode tornar sua experiência de depuração muito melhor, faça isso pelo seu futuro você mesmo!).

1️⃣ console.table

Este método permite a saída de dados tabulares em um formato legível e fácil de entender. Em vez de apenas desconectar uma matriz ou objeto, console.table exibirá os dados em um formato tabular, o que facilita a verificação e a compreensão.

// Imprime um array de objetos como uma tabela   
const users = [
  { id: 1, name: 'John Doe' },
  { id: 2, name: 'Jane Doe' }
];
console.table(users);

Isso produzirá o array users em um formato tabular, com as propriedades de cada objeto como colunas e os valores como linhas.

console.table

2️⃣console.group

console.group e console.groupEnd. Esses métodos permitem criar um grupo aninhado e recolhível no console. Isso pode ser útil para organizar e estruturar sua saída de depuração, para que você possa ver facilmente o que está acontecendo em diferentes níveis de seu código.

console.group('User Details');
console.log('Name: John Doe');
console.log('Age: 32');
console.groupEnd();

Isso criará um grupo recolhível aninhado no console com o título "Detalhes do usuário". As mensagens de log dentro do grupo serão recuadas e agrupadas.

console.group

3️⃣console.time

console.time e console.timeEnd. Esses métodos permitem que você meça a quantidade de tempo que um bloco de código leva para ser executado. Isso pode ser útil para identificar gargalos de desempenho em seu código e otimizá-los.

console.time('Fetching data');
fetch('https://reqres.in/api/users')
  .then(response => response.json())
  .then(data => {
    console.timeEnd('Fetching data');
    // Process the data
  });

Isso medirá o tempo necessário para buscar dados do URL especificado e analisar a resposta JSON. O tempo decorrido será exibido no console.

console.time

4️⃣console.assert

Esse método permite que você escreva asserções em seu código, que são declarações que sempre devem ser verdadeiras. Se uma asserção falhar, console.assert gerará uma mensagem de erro no console. Isso pode ser útil para detectar bugs e garantir que seu código esteja funcionando conforme o esperado.

function add(a, b) {
  return a + b;
}

// Test the add function
const result = add(2, 4);
console.assert(result === 5, 'Expected 2 + 3 = 5');

Isso gerará uma mensagem de erro no console se a função add não retornar o resultado esperado de 5 quando receber a entrada 2 e 4.

console.assert

5️⃣Estilize seus logs

Use o console para produzir estilos e cores. O console permite a saída de texto em cores e estilos diferentes, tornando a saída de depuração mais legível e fácil de entender.

Você pode usar o %c em console.log para especificar um estilo CSS para o texto de saída.

console.log('%cHello world!', 'color: red; font-weight: bold;');

Isso produzirá o texto “Hello world!” em vermelho e negrito, usando o estilo CSS especificado.

Estilizando a saída do console.log com CSS

A propósito, se você quiser logs ainda melhores, talvez queira usar uma biblioteca de log especializada, que oferece mais configurações. Eu adicionei uma muito boa neste artigo: 5 bibliotecas React pequenas e ocultas que você já deveria estar usando

6️⃣console.trace

Use o console.trace para gerar um rastreamento de pilha. Isso pode ser útil para entender o fluxo de execução em seu código e para identificar a origem de uma determinada mensagem de log.

function foo() {
  console.trace();
}

function bar() {
  foo();
}

bar();

Isso produzirá um rastreamento de pilha no console, mostrando a sequência de chamadas de função que levaram à console.trace. A saída será algo como isto:

console.trace

7️⃣console.dir

Use o console.dir para gerar as propriedades de um objeto em um formato hierárquico. Isso pode ser útil para explorar a estrutura de um objeto e ver todas as suas propriedades e métodos.

const obj = {
  id: 1,
  name: 'John Doe',
  address: {
    street: '123 Main St',
    city: 'New York',
    zip: 10001
  }
};
console.dir(obj);

Isso produzirá as propriedades do obj em um formato hierárquico, permitindo que você veja a estrutura do objeto e todas as suas propriedades e valores.

console.dir

8️⃣console.count

Use o console.count para contar o número de vezes que uma mensagem de log específica é uma saída. Isso pode ser útil para controlar quantas vezes um determinado caminho de código é executado e para identificar pontos de acesso em seu código.

function foo(x) {
  console.count(x);
}

foo('hello');
foo('world');
foo('hello');

Isso produzirá a string “hello” no console, seguida do número 1. Em seguida, a string “world” será exibida no console, seguida do número 1. Finalmente, a string “hello” será exibida novamente, seguida pelo número 2 (já que foi chamado duas vezes).

console.count

9️⃣console.clear

Use o console.clear para limpar a saída do console. Isso pode ser útil para manter sua saída de depuração organizada e limpo e para facilitar o foco nas informações de seu interesse.

console.log('Hello world!');
console.clear();
console.log('This log message will appear after the console is cleared.');

Isso produzirá a string “Hello world!” no console, seguido por uma linha em branco (desde que o console esteja limpo). Em seguida, ele exibirá a string “Esta mensagem de log aparecerá depois que o console for limpo”.

console.clear

1️⃣0️⃣console.profile

Use os métodos console.profile e console.profileEnd para medir o desempenho de um bloco de código. Isso pode ser útil para identificar gargalos de desempenho e para otimizar seu código para ter mais velocidade e eficiência.

console.profile('MyProfile');

// Run some code that you want to measure the performance of
for (let i = 0; i < 100000; i++) {
  // Do something
}

console.profileEnd('MyProfile');

Isso iniciará o perfil do bloco de código entre as chamadas console.profile e console.profileEnd, e exibirá os resultados no console quando a chamada console.profileEnd for executada. A saída incluirá detalhes sobre o tempo necessário para executar o código e qualquer outra informação relacionada ao desempenho.

console.profile

💭 Algumas considerações finais

Em 2023, não se contente apenas com console.log - há muito mais ferramentas e técnicas poderosas e valiosas disponíveis no objeto de console JavaScript .

De console.table a console.time, esses métodos e truques ajudarão você a melhorar a qualidade e a legibilidade de sua saída de depuração e facilitarão a solução e correção de problemas em seu código.

Então, por que não aprimorar suas habilidades de depuração em 2023 e experimentar essas técnicas? Seu código (e sua sanidade) vão agradecer.

3

Toma, pode levar minhas Tabcoins!
Esta é a dica do ano!

Eu já usava o console.error e o console.table e já me achava o máximo.
Tentei elencar algum da lista como melhores opções ou mais úteis, mas todos parecem ser bem interessante, depois vou ver com calma para adicionar ao meu repertório!

2

É, agora deu vontade de ler toda a documentação do ECMAScript só pra ver se tem algum metodo diferenciado que pode ajudar em algo do dia a dia. obg

2

Muito bom! Já conhecia a maioria destes métodos do console.

Faltou apenas comentar sobre o console.debug, em que as mensagens de depuração aparecem apenas se o navegador do usuário está com o nível de registro Detalhado. Isso evita que a sua aplicação em produção encha a tela do console do usuário, permitindo que ele tenha acesso à informações sensíveis da sua aplicação.

2
2

Eu realmente não conhecia todos estes métodos do console.
Agradeço a quem fez o post, tu é fera, meu irmão. Estou voltando ao mundo da programação e já sinto que estou no caminho certo!!!

2

Olá ghostnetrn, obrigado por compartilhar seu conhecimento conosco!
Eu não fazia ideia da existência destes métodos, isso vai ajudar muito nos meus estudos. Apesar de eu estar ainda no início, quero me acostumar a já usar esses métodos modernos e melhores.
Abraço

2
2

A maioria das vezes acabamos utilizando somente o console.log por ser o mais famoso entre eles, mas existem vários consoles que faz a ligibilidade enquanto estamos debugando uma aplicação se tornar bem melhor, Ótimo conteúdo sobre consoles!!

2

Tome minhas tabcoins!
Esse artigo foi ótimo, não tinha idade que havia tantas alternativas de ferramentas para o console.log, sempre uso só ele e o clear. Gostei principalmente do console.time, dá pra usar em promisses, onde posso ver o tempo que a promisse foi cumprida.

2

caracas, eu também não sabia desse time e de umas par de outros métodos. Na real sempre usei muito o console.log() hehehe legal demais. Muito obrigado por isso

2

Sou novo em JavaScript, e olhando os diversos tipos de "console" que existem, fico pensando "Como a maioria das pessoas não utiliza esse tipo de coisa?". Sendo que isso literalmente foi feito para ajudar a deixar de forma mais organizada, e até mesmo bonita as suas mensagens do console. Com certeza quando eu tiver que fazer algo que posso ser melhorado usando essas técnicas, vou usar!

2
2

Cara!!
Isso foi incrivel, eu lembrava de ter visto algo parecido a alguns anos, mas infelizmente nunca mais encontrei.

Obrigado por compartilhar, é extremamente util para quando você está debugando em diferentes pontos do código...

1
1

Isso é realmente mt bom, nunca imaginei que o console teria outros métodos, achei os mais úteis o table,group e count

1

Descobri agora que dev js não se vive só de console.log, obrigado pelo post, nunca eu imaginaria esses outros metodos de depuração, muito util

Loucuras da minha cabeça: esse console.assert seria a "mesma coisa" que a biblioteca Jest para TDD??

1