in
Baseline
Ampliamente disponible
Esta característica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde julio de 2015.
El operador in devuelve true si la propiedad especificada está en el objeto especificado o su prototipo.
Sintaxis
prop in object
Parámetros
Descripción
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)
Usando in con propiedades eliminadas o no definidas
Si se elimina una propiedad con el operador 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 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
Propiedades heredadas
El operador in devuelve true para propiedades en la cadena del prototipo.
"toString" in {}; // devuelve true
Especificaciones
| Especificación |
|---|
| ECMAScript® 2027 Language Specification> # sec-relational-operators> |