1
resposta

Operador OU

No meu código obtive o mesmo resultando utilizando o operador "ou" uma única vez. exemplo:

tecla.onkeydown = function (evento) {
    if(evento.code === "Space" | evento.code === "Enter"){
        tecla.classList.add('ativa');     
        }
}

Na aula ela explica que devemos usar com dois palitos, não entendi o porque de se usar dois no lugar de um só, já que o resultado é o mesmo.

1 resposta

Oi Rafael, tudo bem?

Desculpe a demora em responder!

Muito interessante sua colocação com relação ao uso de apenas uma barra (|). Ambas as opções são possíveis, mas vamos juntos entender como cada uma funciona.

Em JavaScript, o operador "|" é chamado de "bitwise OR" (ou "ou bitwise" em português), enquanto o operador "||" é chamado de "logical OR" (ou "ou lógico" em português). Esses dois operadores apresentam diferenças consideráveis.

O operador "ou bitwise" faz a comparação de dois valores utilizando suas representações binárias e retornando um novo valor. Para formar esse valor de retorno, cada bit é comparado, retornando verdadeiro se o valor for igual a "1" e falso se o valor for igual a "0". Por exemplo:

5 | 3 // retorna 7

Em binário, 5 é representado por 101 e 3 por 011. Quando aplicamos a operação OR bit a bit, cada número da sequência é analisado individualmente. Dessa forma, os valores serão vistos da seguinte maneira:

  • Para 5 (101): o primeiro número é tido como verdadeiro, o segundo é tido como falso, o terceiro é tido como verdadeiro;
  • Para 3 (011): o primeiro número é tido como falso, o segundo e o terceiro são tidos como verdadeiro;

Assim, obtemos 111, que representa o número inteiro 7.

Por outro lado, o operador "ou lógico" é utilizado para analisar se está sendo avaliada uma opção ou a outra. Como por exemplo, o comando que você mencionou:

tecla.onkeydown = function (evento) {
    if(evento.code === "Space" || evento.code === "Enter"){
        tecla.classList.add('ativa');     
        }
}

Nesse caso se o evento de código for estritamente igual a tecla espaço ou a tecla enter, será executada determinada função. O retorno dessa comparação será a tecla "ESPAÇO" e a tecla "ENTER".

Espero ter ajudado. Caso tenha dúvidas, estarei à disposição!

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!