Javascript – #1.13. Operadores de tipos

Otra vez volvemos a hablar de operadores, concretamente de operadores de tipos. Sin embargo, en este caso no hablamos de signos, si no de dos instrucciones: typeof e instanceof.

  • Typeof devuelve una cadena que indica el tipo de operando que hay después sin evaluarlo.
  • Instanceof verifica si un objeto se corresponde con el tipo de dato indicado a continuación.

En realidad, instanceof comprueba si un objeto en su cadena de prototipos, contiene la propiedad prototype de un constructor. Pero esto son palabras mayores por el momento. Veremos qué son los prototipos y qué son los constructores más adelante.

En este vídeo conocerás los operadores de tipos typeof e instanceof, que te servirán para conocer de qué tipo es una variable o un dato; y si un objeto es instancia de otro, respectivamente. ¡Más adelante veremos con detalle cómo hacer casting de tipos!

¡Consulta en la pestaña Materiales el código fuente trabajado en la lección!

¿No te ha quedado claro? ¿Quieres aportar tu punto de vista? ¡Deja tu comentario!

¡Ups! ¡Este contenido está restringido a codelovers! Inicia sesión o, si aún no eres miembro de Didacticode, regístrate!

9 comentarios
Contraer comentarios

¿Por qué un número no es una instancia de Number en alguna ocasión?

var number ;

number = 5;
console.log(number instanceof number); // false, ¿A qué instancia pertenece?

number = new Number(5);
console.log(number instanceof number); // true

var number;

number = 5;
console.log(number instanceof Number);

number = new Number(5);
console.log(number instanceof Number);

didacticode (Administrador) 02/03/2021 a las 01:04

¡Hola, Dani!
Verás, te cuento: instanceof lo utilizamos siempre que queramos comprobar el tipo de un OBJETO en tiempo de ejecución. Eso quiere decir que cualquier valor primitivo (una cadena expresada como un literal -ej. “casa”, un número expresado como tal -ej. 3-), etc. no serán instancias de objetos.
Solamente obtendremos un “true” en caso de que trabajemos con variables definidas como String, Number, Boolean, Object, etc.
¡Espero haberte aclarado! ¡Un saludo!

No he podido entender el significado de instancia. Instanceof es para saber si un objeto es instancia de otro. Pero que es una instancia. Usar lo que intentas explicar para definirlo quizás sea el problema. Buscare mas información al respecto quizás sea algo complejo de entender en este momento del aprendizaje.

didacticode (Administrador) 08/02/2022 a las 09:47

¡Hola de nuevo, Miguel!
Verás, en teoría, esta formación está pensada para alumnado de 2º curso de Desarrollo de Aplicaciones Web, por lo que ya conocen lo que es una instancia por el módulo de Programación. Pero no te preocupes, que en el siguiente comentario en que respondo a DAR, explico lo que es. ¡Gracias por tu aporte!

Muchas gracias por el curso, es fantástico.

¿Podrías aclarar que es una “instancia” (no termino de captarlo bien)? Lo he buscado en Google y lo más que me he acercado es esto:
“En JavaScript, “instancia” no tiene este mismo significado ya que JavaScript no hace diferencia entre clases e instancias. Sin embargo, al hablar de JavaScript, “instancia” puede ser usado informalmente para indicar que un objeto ha sido creado usando una función constructora particular”.

¿Se refiere a un objeto creado por una clase es una instancia?
¿Entonces a qué te refieres con “instancias de objetos” del comentario anterior?

didacticode (Administrador) 08/02/2022 a las 15:23

¡Hola, Antonio! A ver si puedo ayudarte. Lo primero de todo es que entiendas que la manera de llamar a las cosas en Javascript difiere “un poquito” a otros lenguajes de programación orientados a objetos. Pero yo te voy a explicar en genérico para que lo entiendas.
Una clase es una “plantilla” de algo. Por ejemplo, una clase es “coche” y en la clase coche dices que hay atributos como marca, modelo, o color. Un objeto se dice que es “una instancia de una clase”; es decir, es como si cogieras esa plantilla, echaras plastilina o escayola y sacaras una muestra de esa clase. Tendríamos un objeto de tipo coche, con la particularidad que ese coche tendrá sus propios valores en los atributos. Será un Seat Ibiza de color rojo, por ejemplo. O un Opel Corsa de color gris. ¿Me explico?

Muchas gracias por la aclaración.
Me quedo con “un objeto es una instancia de una clase”, que creo que es la pieza que me faltaba para encajar lo demás.
Continúo con este estupendo curso, gracias otra vez.

didacticode (Administrador) 10/02/2022 a las 22:18

¡Me alegro muchísimo, Antonio!
Gracias a ti por tus mensajes

Deja un comentario