"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 > O que o ponto de exclamação (!) faz em uma expressão de função JavaScript?

O que o ponto de exclamação (!) faz em uma expressão de função JavaScript?

Publicado em 2024-12-26
Navegar:338

What Does the Exclamation Mark (!) Do in a JavaScript Function Expression?

Revelando o propósito do ponto de exclamação em uma expressão de função

Em JavaScript, ao executar código, encontrar um ponto de exclamação (!) antes uma função pode levantar algumas questões. Vamos nos aprofundar em sua funcionalidade e seu papel na sintaxe.

A sintaxe do JavaScript determina que uma função declarada na forma de "function foo() {}" é uma declaração de função e requer uma invocação para ser executada. No entanto, o pré-processamento de uma declaração de função com um ponto de exclamação (!) a transforma em uma expressão de função, que pode ser seguida por parênteses para invocar imediatamente a função.

O código "!function foo() {}() "pode ​​inicialmente parecer redundante, pois declara uma função, mas também a executa. No entanto, o ponto de exclamação tem dois propósitos aqui:

  • Conversão em uma expressão: Ele converte a declaração da função em uma expressão de função.
  • Implícito Invocação: Quando seguido por parênteses, o ponto de exclamação invoca a função, eliminando a necessidade de uma expressão explícita invocação.

Embora seja essencialmente um truque sintático, esta técnica permite uma sintaxe concisa para expressões de função invocadas imediatamente (IIFEs). Uma forma mais explícita do código seria: "(function(){})();"

Por último, o ponto de exclamação também avalia o valor de retorno da função e o transforma em um booleano. Como os IIFEs normalmente não retornam explicitamente um valor, eles retornam indefinido, que é forçado a ser verdadeiro pelo ponto de exclamação. Este resultado booleano geralmente não é usado.

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