variable type node know how array javascript node.js syntax instanceof typeof

node - typeof javascript



Diferencias entre typeof y instanceof en JavaScript (2)

Esta pregunta ya tiene una respuesta aquí:

Estoy trabajando con node.js, así que esto podría ser específico para V8.

Siempre he notado algunas rarezas con diferencias entre typeof y instanceof, pero aquí hay una que realmente me molesta:

var foo = ''foo''; console.log(typeof foo); Output: "string" console.log(foo instanceof String); Output: false

¿Que esta pasando ahí?


Hay cadenas literales y existe la clase String . Son independientes, pero funcionan a la perfección, es decir, aún puede aplicar métodos de String a una cadena literal, y actuará como si la cadena literal fuera una instancia de objeto String .

Si crea explícitamente una instancia de String , es un objeto, y es una instancia de la clase de String :

var s = new String("asdf"); console.log(typeof s); console.log(s instanceof String);

Salida:

object true


typeof es una construcción que "devuelve" el tipo primitivo de lo que sea que lo pases.
instanceof comprueba si el operando derecho aparece en algún lugar de la cadena del prototipo de la izquierda.

Es importante tener en cuenta que existe una gran diferencia entre el literal de cadena "abc" y el objeto de cadena new String("abc") . En este último caso, typeof devolverá "objeto" en lugar de "cadena".