1
resposta

ajuda em js Switch

let agora = new Date();
let hora = agora.getHours();
console.log("agora são exatamente: " + hora + " horas")
switch(hora){
    case hora >= 19: 
    console.log('Boa noite!')
        break
    case hora >= 12:  
        console.log('Boa tarde!')
        break
    default:
        console.log('Bom dia!')  
        break  
}

Toda vês que eu executo esse código ele sempre me retorna, bom dia, mesmo a hora sendo 15 horas da tarde 20 horas noite etc..

1 resposta

O indicado para o uso do switch seria se você precisa testar o retorno da variavel hora... e não testar uma expressão como no caso de hora >= 19

o js está testando (hora >= 19) == (horaRetornada), neste caso não satisfaz as condicoes case hora >= 19 nem a condição case hora >= 12, pois as duas retornando um booleano true ou false