As palavras anteriores
Os operadores lógicos executam operações booleanas em operandos e são frequentemente usadas em conjunto com operadores relacionais. Os operadores lógicos combinam várias expressões relacionais em uma expressão mais complexa. Os operadores lógicos são divididos em três tipos: não lógicos '!', Logical e '&&', lógico ou '||'. Este artigo apresentará esses três operadores lógicos.
Não-lógico lógico
O não operador lógico é representado por uma marca de exclamação (!) E pode ser aplicado a qualquer valor no ECMAScript. Independentemente do tipo de dados que esse valor é, este operador retorna um valor booleano. O não operador lógico converte primeiro seu operando em um valor booleano e depois o inverte.
O tipo de conversão de operandos lógicos não pares para os tipos booleanos é o mesmo que a função de transformação booleana (), exceto que o resultado é invertido no final. Se dois não operadores lógicos forem usados ao mesmo tempo, o comportamento da função de transformação booleano () será realmente simulado.
console.log (!! indefinido); // Falseconsole.log (!! null); // Falseconsole.log (!!
console.log (!! {}); // trueconsole.log (!!Os não operadores lógicos são frequentemente usados para controlar loops
// A variável booleana (BFOUND) é usada para registrar se a pesquisa é bem -sucedida. Quando o item de dados da pergunta for encontrado, o BFOUND será definido como true ,! Bfound será igual a false, o que significa que a execução irá sair do loop var bfound = false; var i = 0; while (! } else {i ++; }}Lógica e
A lógica e o operador são representados por duas somas (&&). Existem dois operandos. O resultado retornará verdadeiro apenas se ambos os operandos forem verdadeiros, caso contrário, false será retornado.
// Tabela de verdade logística e (&&), primeiro operando, segundo operando resultam true true true true true false false false false false false
A lógica e as operações podem ser aplicadas a qualquer tipo de operando, não apenas booleanos. Se um dos operandos não for um booleano, a lógica e as operações não retornam necessariamente um valor booleano
Lógica e operações são operações de curto-circuito. Se o primeiro operando puder determinar o resultado, o segundo operando não será mais avaliado.
Para a lógica, se o primeiro operando for falso, independentemente do valor que seja o segundo operando, o resultado é falso, o primeiro operando será retornado; Se o primeiro operando for verdadeiro, o verdadeiro e o falso do resultado são os mesmos que o verdadeiro e o falso do segundo operando, o segundo operando será retornado.
// Exceto pelos sete valores falsos de falsos, indefinidos, nulos, +0, -0, nan e '', o restante são todos verdadeiros valores console.log ('t' && ''); // porque 't' é o valor verdadeiro, ele retorna '' console.log ('t' && 'f'); // porque 't' é o valor verdadeiro, ele retorna 'f'console.log (' t '&&' '); // porque 't' é o valor verdadeiro, ele retorna '' console.log ('' && ''); // porque '' é o valor falso, ele retorna '' 'console.log (' '&&' '); // porque '' é o valor falso, ele retorna '' 'console.log (' '' && ''); // porque '' é o valor falso, ele retorna '' ''var i = 1;var result = (true && i++);console.log(result,i);//Because true is the true value, execute i++, i is 2, result is 1var i = 1;var result = (false && i++);console.log(result,i);//Because false is the false value, i is 1, result is false
A lógica e os operadores podem ser usados de várias maneiras, retornando o valor da primeira expressão booleana com falso
console.log (true && 'foo' && '' && 4 && 'foo' && true); // ''
A prioridade dos operadores relacionais é maior que a da lógica e (&&) e a lógica ou (||), para que expressões semelhantes possam ser escritas diretamente sem adicionar parênteses.
if (a+1 == 2 && b+2 == 3) {// TODO}Lógica e operadores podem ser usados em vez de se a estrutura
if (a == b) {Dosomething ();} // é equivalente a (a == b) && Dosomething ();Lógica e operadores são frequentemente usados em funções de retorno de chamada
// Se o valor não for passado para o parâmetro A, a é o padrão indefinido e é um valor falso, portanto a () não será executado para evitar erros. Se o valor for passado para o parâmetro A, a função a () função fn (a) {if (a) {a (); }} // equivalente à função fn (a) {a && a ();}Lógico ou
O lógico ou operador é representado por duas linhas verticais (||). Existem dois operandos. Somente quando ambos os operando forem falsos, o resultado retornará falso, caso contrário, o verdadeiro será retornado.
// Tabela de verdade logística ou (||), primeiro operando, segundo operando, resultado verdadeiro verdadeiro verdadeiro verdadeiro false verdadeiro verdadeiro verdadeiro false false false false
Da mesma forma, lógica ou operações podem ser aplicadas a qualquer tipo de operando, não apenas booleanos. Se um dos operandos não for booleano, a lógica ou operação não retorna necessariamente um valor booleano
A lógica ou operação também é uma operação de curto-circuito. Se o primeiro operando puder determinar o resultado, o segundo operando não será mais avaliado.
Para lógica ou, se o primeiro operando for verdadeiro, o resultado será verdadeiro, independentemente do valor do segundo operando, e o primeiro operando será retornado; Se o primeiro operando for falso, o verdadeiro e falso do resultado são os mesmos que o verdadeiro e o falso do segundo operando, o segundo operando será devolvido.
console.log ('t' || ''); // porque 't' é o valor verdadeiro, ele retorna "t" console.log ('t' || 'f'); // porque 't' é o valor verdadeiro, ele retorna "t" console.log ('| valor, ele retorna ""var i = 1; var resultado = (true || i ++); console.log (resultado, i); // porque o true é o valor verdadeiro, i ++ não é executado, o resultado é verdadeiro, i é 1Var i = 1; var resultado = (false || i ++); console.Log (resultado, i);
Da mesma forma, lógica ou operadores podem ser usados em múltiplas concatenação para retornar o valor da primeira expressão booleana.
console.log (false || 0 || '' || 4 || 'foo' || true); // 4
Os operadores lógicos são frequentemente usados para definir valores padrão para variáveis
// Se nenhum objeto for passado para o parâmetro p, o parâmetro será definido como um objeto vazio por função padrão fn (p) {p = p || {};}O exposto acima está a análise completa do operador JavaScript - operadores lógicos trazidos a você pelo editor. Espero que todos apoiem wulin.com ~