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!