Compreendendo o objetivo do || Operador com operandos não booleanos em JavaScript
Em JavaScript, o || O operador, muitas vezes referido como operador lógico OR, é normalmente usado para avaliar expressões booleanas. No entanto, você pode encontrar casos em que || O operador é utilizado com valores não booleanos.
Em tais cenários, o || operador se comporta como um operador "padrão". Em vez de retornar um booleano, ele retorna o operando esquerdo ou direito com base em certas regras.
Considere o seguinte exemplo de uma grande biblioteca JS que executa operações de desenho em uma tela:
var $time = Date.now || function() { return new Date; };
Neste exemplo, o || operador é usado para atribuir um valor à variável $time. Se o método Date.now existir no objeto Date, ele será atribuído à variável $time. Caso contrário, uma função anônima que retorna a hora atual é atribuída.
A chave para compreender esse comportamento está em entender que o operador OR retorna o primeiro valor verdadeiro ou o último valor falso em seus operandos. Neste caso, o método Date.now é um valor verdadeiro (assumindo que existe), portanto é retornado. Se Date.now não existir, a função anônima se tornará o valor verdadeiro e será retornada.
Este uso do || O operador como operador padrão é predominante em JavaScript e se alinha ao seu propósito como uma forma de especificar valores padrão. Por exemplo, você pode usá-lo para atribuir um valor a uma variável se uma propriedade específica não estiver definida:
var user = user || { name: "Unknown User" };
Compreendendo o || comportamento do operador com operandos não booleanos, você pode aproveitar sua funcionalidade para fornecer atribuições de valores dinâmicas e versáteis em seu código JavaScript.
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