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

View in English Always switch to English

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

prop

Um string ou símbolo representando o nome de uma propriedade ou o índice de um array (não-símbolos serão trazidos para strings).

object

Objeto para verificar se este (ou sua cadeia de protótipo) contém a propriedade com o nome especificado.

Descrição

Os exemplos a seguir mostram alguns usos do operador in.

js
// 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.

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

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

js
var mycar = { make: "Honda", model: "Accord", year: 1998 }; mycar.make = undefined; "make" in mycar; // retorna true 
js
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).

js
"toString" in {}; // retorna true 

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-relational-operators

Compatibilidade com navegadores

Ver também