Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Referência JavaScript
  4. Operadores
  5. AND lógico (&&)

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

AND lógico (&&)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julho de 2015⁩.

O operador lógicoAND (&&) (conjunção lógica) para um conjunto de operandos booleanos serátrue se e somente se todos os operandos foremtrue. Caso contrário, seráfalse.

Geralmente, o operador retorna o valor do primeiro operandofalsy encontrado ao avaliar da esquerda para a direita ou retorna o valor do último operando se todos foremtruthy.

Exemplo

Experimente

const a = 3;const b = -2;console.log(a > 0 && b > 0);// Expected output: false

Sintaxe

js
expr1 && expr2

Descrição

O AND lógico (&&) avalia operandos da esquerda para a direita, retornando imediatamente com o valor do primeiro operandofalsy que encontrar; se todos os valores foremtruthy, o valor do último operando é retornado.

Se um valor puder ser convertido emtrue, o valor é denominado comotruthy. Se um valor puder ser convertido emfalse, então valor será denominadofalsy.

Exemplos de expressões que podem ser convertidas emfalse são:

  • false;
  • null;
  • NaN;
  • 0;
  • string vazia ("" ou'' ou``);
  • undefined.

O operador AND lógico (&&) preserva valores não booleanos e os retorna como estão:

js
result = "" && "foo"; // result retorna "" (string vazia)result = 2 && 0; // result retorna 0result = "foo" && 4; // result retorna 4

Mesmo que o operador&& possa ser usado com operandos não booleanos, ele ainda é considerado um operador booleano, pois seu valor de retorno sempre pode ser convertido em umboolean primitive.Para converter explicitamente seu valor de retorno (ou qualquer expressão em geral) para o valor booleano correspondente, use um doubleoperador NOT ou o construtorBoolean.

Avaliação de curto-circuito

A expressão AND lógica é um operador de curto-circuito. Ou seja, à medida que cada operando é convertido em um booleano, se o resultado de uma conversão forfalse, o operador AND para e retorna o valor original desse operando falso; elenão avalia nenhum dos operandos restantes.

Considere o pseudocódigo abaixo.

(alguma expressao falsa aqui) && expr

Aexprnunca é avaliada porque o primeiro operando(alguma expressao falsa aqui) é avaliado comofalsy. Seexpr for uma função, a função nunca será chamada. Veja o exemplo abaixo:

js
function A() {  console.log("chamou A");  return false;}function B() {  console.log("chamou B");  return true;}console.log(A() && B());// registra "chamou A" no console devido à chamada da função A,// && é avaliado como false (porque a função A retorna false), então false é registrado no console;// o operador AND entra em curto-circuito aqui e ignora a função B

Operador precedente

O operador AND tem uma precedência maior que o operador OR, o que significa que o operador&& é executado antes do operador|| (consulteprecedência de operadores).

js
true || (false && false); // truetrue && (false || false); // false2 === 3 || (4 < 0 && 1 === 1); // false

Exemplos

Usando AND

O código a seguir mostra exemplos do operador&& (AND lógico).

js
a1 = true && true; // t && t retorna truea2 = true && false; // t && f retorna falsea3 = false && true; // f && t retorna falsea4 = false && 3 === 4; // f && f retorna falsea5 = "Cat" && "Dog"; // t && t retorna "Dog"a6 = false && "Cat"; // f && t retorna falsea7 = "Cat" && false; // t && f retorna falsea8 = "" && false; // f && f retorna ""a9 = false && ""; // f && f retorna false

Regras de conversão para booleanos

Convertendo AND para OR

A seguinte operação envolvendobooleanos:

js
bCondition1 && bCondition2

é sempre igual a:

js
!(!bCondition1 || !bCondition2)

Convertendo OR para AND

A seguinte operação envolvendobooleanos:

js
bCondition1 || bCondition2

é sempre igual a:

js
!(!bCondition1 && !bCondition2)

Removendo parênteses aninhados

Como as expressões lógicas são avaliadas da esquerda para a direita, sempre é possível remover os parênteses de uma expressão complexa desde que certas regras sejam seguidas.

A seguinte operação composta envolvendobooleanos:

js
bCondition1 || (bCondition2 && bCondition3)

é sempre igual a:

js
bCondition1 || bCondition2 && bCondition3

Especificações

Specification
ECMAScript® 2026 Language Specification
# prod-LogicalANDExpression

Compatibilidade com navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp