in
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
.
js
// 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.
js
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.
js
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.
js
var micoche = { marca: "Honda", modelo: "Accord", año: 1998 };
micoche.marca = undefined;
"marca" in micoche; // devuelve true
js
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.
js
"toString" in {}; // devuelve true
Especificaciones
Specification |
---|
ECMAScript Language Specification # sec-relational-operators |
Compatibilidad con navegadores
BCD tables only load in the browser