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> |