"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que a declaração de variável do console JavaScript resulta em "Indefinido"?

Por que a declaração de variável do console JavaScript resulta em "Indefinido"?

Publicado em 2024-11-02
Navegar:487

Why Does JavaScript Console Variable Declaration Result in \

Por que a declaração de variável JavaScript no console resulta em "Indefinido"

Ao declarar uma variável no console JavaScript usando a sintaxe var a;, imprime "indefinido". Esse comportamento pode ser surpreendente e geralmente é abordado em postagens do Stack Overflow. No entanto, essas discussões não conseguem explicar completamente por que isso ocorre.

O comportamento do console é um resultado direto da maneira como o JavaScript avalia as expressões. Ao avaliar a instrução var a;, o JavaScript a considera uma expressão por si só e retorna seu resultado, que é de fato "indefinido".

É mais intrigante porque o console também imprime "indefinido" ao declarar uma variável com um valor inicial, como var a = 3. Surpreendentemente, todas as instruções de declaração de variáveis ​​​​em JavaScript (tanto var quanto function) retornam "indefinido" se houver outra instrução com um resultado "real".

Por exemplo :

> var a = 3;
undefined

> var a = 3; a = 4;
4

> var a = 3; a = 4; var a = 5; function f() {};
4

Esse comportamento está enraizado na instrução eval, que, de acordo com a especificação ECMAScript:

  • Retorna "indefinido" se o valor de conclusão do programa avaliado estiver vazio.

A avaliação da instrução var a = 4 retorna (normal, vazio, vazio), o que satisfaz os critérios para retornar "indefinido".

No entanto, o eval também especifica que se o o valor de conclusão do programa avaliado não estiver vazio, então o valor da última instrução será retornado. No último exemplo, a = 4 é a última instrução, portanto seu valor (4) é retornado.

Em resumo, o console do JavaScript imprime "indefinido" para declarações de variáveis ​​porque essas declarações retornam "indefinido" quando avaliadas como expressões. Esse comportamento pode ser confuso, principalmente ao atribuir valores iniciais a variáveis, mas decorre dos mecanismos de avaliação subjacentes de expressões e instruções JavaScript.

Declaração de lançamento Este artigo foi reimpresso em: 1729384697 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3