--- title: in slug: Web/JavaScript/Reference/Operators/in tags: - JavaScript - Operator - Relational Operators translation_of: Web/JavaScript/Reference/Operators/in original_slug: Web/JavaScript/Referencia/Operadores/in ---
in devuelve true si la propiedad especificada está en el objeto especificado o su prototipo.prop in object
propobjectLos siguientes ejemplos muestran algunos de los usos del operador in.
// Arrays
var arboles = new Array("secoya", "pino", "cedro", "roble", "arce");
0 in arboles // devuelve true
3 in arboles // devuelve true
6 in arboles // devuelve false
"pino" in arboles // devuelve false (debe especificar el número de índice,
// no el valor del índice)
"length" in arboles // devuelve true (length es una propiedad de Array)
// Objetos predefinidos
"PI" in Math // devuelve true
// Objetos personalizados
var micoche = {marca: "Honda", modelo: "Accord", año: 1998};
"marca" in micoche // devuelve true
"modelo" in micoche // devuelve true
Debe especificar un objeto en el lado derecho del operador in. Por ejemplo, puede especificar una cadena creada con el constructor String , pero no puede especificar una cadena literal.
var color1 = new String("verde");
"length" in color1 // devuelve true
var color2 = "coral";
"length" in color2 // genera un error (color2 no es un objeto String)
in con propiedades eliminadas o no definidasSi se elimina una propiedad con el operador {{jsxref("Operadores/delete", "delete")}}, el operador in devuelve false para esa propiedad.
var micoche= {marca: "Honda", modelo: "Accord", año: 1998};
delete micoche.marca;
"marca" in micoche; // devuelve false
var arboles = new Array("secoya", "pino", "cedro", "roble", "arce");
delete arboles[3];
3 in arboles; // devuelve false
Si se cambia una propiedad a {{jsxref("Objetos_globales/undefined", "undefined")}} pero no se elimina, el operador in devuelve true para esa propiedad.
var micoche = {marca: "Honda", modelo: "Accord", año: 1998};
micoche.marca = undefined;
"marca" in micoche; // devuelve true
var arboles = new Array("secayo", "pino", "cedro", "roble", "arce");
arboles[3] = undefined;
3 in arboles; // devuelve true
El operador in devuelve true para propiedades en la cadena del prototipo.
"toString" in {}; // devuelve true
| Especificación | Estado | Comentario |
|---|---|---|
| {{SpecName('ESDraft', '#sec-relational-operators', 'Relational Operators')}} | {{Spec2('ESDraft')}} | |
| {{SpecName('ES2015', '#sec-relational-operators', 'Relational Operators')}} | {{Spec2('ES2015')}} | |
| {{SpecName('ES5.1', '#sec-11.8.7', 'The in Operator')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES3', '#sec-11.8.7', 'The in Operator')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.4. |
{{Compat("javascript.operators.in")}}
for...indelete