--- 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
prop
object
Los 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...in
delete