Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
in operator
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 in retorna true se a propriedade especificada estiver no objeto especificado ou na sua cadeia de protótipo (prototype chain) desde objeto.
Sintaxe
prop in object
Parâmetros
Descrição
Os exemplos a seguir mostram alguns usos do operador in.
// Arrays
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees; // retorna true
3 in trees; // retorna true
6 in trees; // retorna false
"bay" in trees; // retorna false (você precisa especificar o
// número do índice, não o valor naquele índice)
"length" in trees; // retorna true (length é uma propridade do Array)
Symbol.iterator in trees; // retorna true (arrays são iteráveis, funciona apenas na ES2015+)
// Objetos predefinidos
"PI" in Math; // retorna true
// Objetos personalizados
var mycar = { make: "Honda", model: "Accord", year: 1998 };
"make" in mycar; // retorna true
"model" in mycar; // retorna true
Você precisa especificar um objeto no lado direito do operador in. Por exemplo, você pode especifica um string criado com o construtor String, mas você não pode especificar um string literal.
var color1 = new String("green");
"length" in color1; // retorna true
var color2 = "coral";
// gera um erro (color2 não é um objeto String)
"length" in color2;
Usando in com propriedade removida ou undefined
Se você remover uma propriedade com o operador delete , o operador in retorna false para essa propriedade.
var mycar = { make: "Honda", model: "Accord", year: 1998 };
delete mycar.make;
"make" in mycar; // retorna false
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
3 in trees; // retorna false
Se você definir uma propriedade como undefined, mas não a remover, o operador in retorna true para essa propriedade.
var mycar = { make: "Honda", model: "Accord", year: 1998 };
mycar.make = undefined;
"make" in mycar; // retorna true
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
3 in trees; // retorna true
Propriedades herdadas
O operador in retorna true para propriedades que estão na cadeida de protótipo (prototype chain).
"toString" in {}; // retorna true
Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-relational-operators> |
Compatibilidade com navegadores
Loading...