Julgamento comparativo
O julgamento de comparação é comparar dois valores e retornar um valor booleano para indicar se as condições de comparação são atendidas. O JavaScript fornece um total de 8 operadores de comparação. Aqui falamos principalmente sobre a diferença entre operadores estritos de igualdade e operadores de igualdade.
Operador estrito de igualdade ===
Determine que o retorno de dois valores é diferente, falso, ambos os valores são nulos/indefinidos/true/false true. Um dos dois valores é nan, falso, ambos os valores são numéricos e iguais, verdadeiros, ambos os valores são strings e valores iguais são verdadeiros, ambos os valores apontam para o mesmo tipo de referência true1 === "1" // falsretue === true // truendefined ======) =//10 = 0) false [] === [] // false (function () {} === function () {}) // Falsauvar v1 = {}; var v2 = v1; // dois valores se referem ao mesmo objeto v1 === v2 // trueO operador estrito da igualdade possui um operador rigoroso de desigualdade correspondente (! ==), e os resultados da operação dos dois são exatamente o oposto.
Operador de igualdade ==
Se o operador de igualdade compara dados do mesmo tipo, o mesmo operador estrito de igualdade se o operador de igualdade comparar diferentes tipos de dados: o tipo original de dados será convertido em tipos numéricos, converter as seqüências de caracteres e booleanos em valores numéricos e depois compararem -se a um objeto e, em seguida, o tipo de objeto e, em seguida, o tipo de objeto e, em seguida, o tipo de objeto e, em seguida, o que é um objeto. // true'123 '== 123; // true, '123' será convertido em valores numéricos 123false == 0; // Verdadeiro, a conversão falsa em valores numéricos é 0'a '==' a '; // false, a codificação convertida é diferente 123 == {}; // Falso, executando o tostring () ou valueof () mudará 123 == = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = / = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Nan; // false, desde que houver nan, ele é falso {} == {}; // Falso, a comparação é o endereço deles. The reference address of each newly created object is different null == undefined //true'NaN' == NaN //false123 == NaN //falseNaN == NaN //falsefalse == 0 //truetrue == 1 //truetrue == 2 //falseundefined == 0 //falsenull == 0 //false'123' == 123 //true'123' == 123 // falseO operador de igualdade possui um operador desigual correspondente (! =), E os resultados da operação dos dois são exatamente o oposto.
!!juiz
Boolean Boolean
!! 'xzavier'; // verdadeiro!!''; // false !! '0'; // verdadeiro !! '1'; // true !! '-1' // true !! 0 // false !! indefinido // false !! null // false !! nan // false !! {}; // true !! {nome: 'xz'} // true !! []; // verdadeiro !! [1,2,3]; // True !! Verdadeiro; // verdadeiro!juiz
Operador inverso! é usado para alterar o valor booleano para o valor oposto, isto é, o verdadeiro se torna falso e falso se torna verdadeiro. Para dados que não são booleanos, o operador de inversão os converte automaticamente em um booleano. A regra é que os seis valores a seguir são invertidos para verdadeiros e os outros valores são invertidos para falsos
nulo indefinido Falso 0 (incluindo +0 e -0) Nan String vazia ('')! Undefinido // true![] e {} julgamento
Para [] e {}, definitivamente faremos julgamentos sobre eles no código comercial, como acima
!! {}; // true !! {nome: 'xz'} // true !! []; // verdadeiro !! [1,2,3]; // verdadeiro Não pode ser usado para julgamentos! e!. Para matrizes, usamos seu atributo length para julgar
[] .Length // 0 false [1,2,3] .Length // 3 Verdadeiro
Para objetos, você pode usar o método de jQuery $.isEmptyObject(obj) ou pode encapsular um método imitando jQuery para escrever um
função isEmptyObject (obj) {var name; para (nome em obj) {return false; } retornar true;} isEmptyObject ({}); // trueisemptyObject ({name: 'xzavier'}); falso Recomende uma biblioteca de ferramentas underscore , que também possui um método isEmpty(object)
const _ = requer ('sublinhado'); _. isEmpty ({}); // verdadeiro&&juiz
Usados em expressões condicionais, as regras são:
num1 && num2true true true true true false false false false false false false
Usados em um comunicado, as regras são:
resultado = expressão1 && Expression2
Se a expressão1 avaliar como falsa, o resultado é expressão1. Caso contrário, o resultado é expressão2
(1 - 1) && (x + = 1) // 0 (2> 1) && (5 + 5) // 10 (2 + 1) && (5 + 5) // 10
|| julgamento
Usados em expressões condicionais, as regras são:
num1 || num2True verdadeiro verdadeiro verdadeiro verdadeiro false verdadeiro verdadeiro verdadeiro
Usados em um comunicado, as regras são:
Se o valor booleano do primeiro operador for verdadeiro, o valor do primeiro operador será retornado e o segundo operador não será mais avaliado.
Se o valor booleano do primeiro operador for falso, o valor do segundo operador será retornado
|| Os operadores geralmente executam o julgamento da expressão condicional e o processamento de tolerância a falhas no código de negócios. Se não conseguirmos obter os dados ao buscá -los, eles não podem afetar o código comercial subsequente, por isso precisamos ser tolerância a falhas. || é um método de escrita tolerante a falhas muito bom, que equivale a fornecer dados de backup.
var dados = indefinido || backup_data; // Quando houver um erro na solicitação e os dados estão indefinidos, vá para backup de dados backup_data
Julgamento de três olhos
regra:
doença ? expressão1: expressão2; função absn (xzavier) {return xzavier> 0? xzavier: -xzavier;} absn (-123); // 123ABSN (123); // 123Se o valor booleano da primeira expressão for verdadeiro, o valor da segunda expressão será retornado, caso contrário, o valor da terceira expressão será retornado.
Resumir
O exposto acima é todo o conteúdo do julgamento no código JavaScript para todos. Espero que o conteúdo deste artigo seja útil para todos que usam JavaScript.