Bem-vindos à nossa comunidade!

Junte-se a nós e faça parte hoje mesmo!

Aula: Função com Retorno #01

Raquel

Membro
Moderador
Cadastro
24/9/20
Postagens
407
Curtidas
443
Pontuação
150
Qual a diferença entre fazer if(variavel) e if(variavel == true)?

É uma complicaçãozinha lógica, mas vamos lá!

Primeiramente, a declaração if() é booleana. Isso significa que ela compara entre valores de verdadeiro (true) e falso (false). Se (if) uma coisa for verdadeira, é executada o pedaço de um código, senão ou caso contrário (else), é executado um outro pedaço de código.

Para fins didáticos, vou usar uma variável chamada variavelBooleana. Ao fazer if(variavelBooleana), o código executado irá entrar nessa condição se você passar para ele quaisquer valores verdadeiros, não somente true como também quais valores diferentes de zero, quaisquer Strings não vazias, referências para objetos, etc.

JavaScript:
    function teste(variavelBooleana) {
        if(variavelBooleana) {
            return "Opa, é verdade sim!"
        } else {
            return "Vish, parece que é falso!"
        }
    }
    console.log(teste(0)) //falso!
    console.log(teste(1)) //verdadeiro!
    console.log(teste("Funciona com String?")) //verdadeiro!
    console.log(teste('')) //string vazia - falso!

Ao fazer if(variavelBooleana == true) você está fazendo uma comparação estrita, ou seja, o código somente vai entrar nessa condição se variavelBooleana de fato receber o valor true. Caso contrário, o valor dentro da condição else é executado.

JavaScript:
    function teste(variavelBooleana) {
        if(variavelBooleana == true) {
            return "Opa, é verdade sim!"
        } else {
            return "Vish, parece que é falso!"
        }
    }
    console.log(teste(0)) //falso!
    console.log(teste(1)) //verdadeiro!
    console.log(teste("Funciona com String?")) //falso!
    console.log(teste('')) //string vazia - falso!

Curiosidade: 0 == false e 1 == true em JavaScript. Doido, né? É uma das particularidades da JavaScript!

Como não se aplica ao caso da aula, o professor usou somente retornaTexto porque ele ia usar um valor verdadeiro que sabia que ia entrar na condição.

Sugiro a leitura desses links aqui para um aprofundamento sobre o assunto: Operadores JavaScript (fala sobre os tipos de comparação), Funções com e sem retorno, boolean in an if statement e JavaScript if(x) vs if(x==true)
 
Top