Tipo de variable no declarada en JavaScript: ¿Qué es?
¿Alguna vez has pensado, ¿qué es el tipo de variable no declarada en JavaScript? Lo sé, lo primero que puede venir a la mente es: ¿cómo puede una variable no declarada tener un tipo? Sí, en JavaScript es posible.
¿Alguna vez has pensado, ¿qué es el tipo de variable no declarada en JavaScript? Lo sé, lo primero que puede venir a la mente es: ¿cómo puede una variable no declarada tener un tipo? Sí, en JavaScript es posible.

Para entenderlo, comencemos con la comprensión de los tipos en JavaScript. Hay siete tipos integrados en JavaScript. Son los siguientes:
- nulo
- indefinido
- booleano
- número
- cadena
- object
- symbol (added on ES6)

Cada variable con un valor asignado tiene un tipo. Consideremos el código que se enumera a continuación:
var foo = 9; console.log(typeof (foo)); // number var koo; console.log(typeof (koo)); // undefined var too = 'Infragistics'; console.log(typeof (too)); // string
Como puede ver en el fragmento anterior, si no hay ningún valor asignado, el tipo de variable es indefinido.

Hasta aquí todo bien, hemos visto que la variable sin valor asignado es indefinida. Consideremos el siguiente fragmento de código:
var koo; console.log(koo); // undefiend console.log(typeof (koo)); // undefined
Hemos creado una variable koo y no le hemos asignado ningún valor. Ahora, tanto el valor como el tipo de koo se establecen en undefined.

Ahora que comprende el tipo y el valor asociados con undefined, pasemos a null. En JavaScript, null es un tipo primitivo. Sin embargo, el tipo de valor nulo es object. Considere el código que se enumera a continuación:
var foo = null; console.log(foo); // null console.log(typeof (foo)); // object
Puede considerar como un error heredado que el tipo de valor nulo sea objeto en JavaScript.

Por último, pero igual de importante, en JavaScript una variable que no se declara también tiene un tipo. El tipo de variable declarado es undefined.
console.log(foo);// error foo is not defined console.log(typeof (foo)); // undefined
Al leer el valor de la variable, que no está declarado, JavaScript devolverá un error "no definido" y devolverá su tipo como indefinido

Además, hay que tener en cuenta que en el mundo de JavaScript no es lo mismo no definido que indefinido. Espero que ahora entiendas varios tipos primitivos en JavaScript.