tipos de javascript

primitivos

Symbol

Symbol es un tipo de datos cuyos valores son únicos e inmutables. Dichos valores pueden ser utilizados como identificadores (claves) de las propiedades de los objetos. Cada valor del tipo Symbol tiene asociado un valor del tipo String o Undefined que sirve únicamente como descripción del símbolo. mdn

String

Un string es una cadena de caracteres. A cada carácter de una cadena se le asigna una posición, empezando por el primer carácter en la posición 0, el segundo en la posición 1 y así sucesivamente.

"tarta de plátano vegana con masa casera";

Number

JavaScript solo tiene un tipo de datos numérico. No hay un tipo específico para los números enteros y de coma flotante.

var peso = 54;
var pesoExacto = 54.3;

int peso = 54;
float pesoExacto = 54.30f

Boolean

Boolean representa una entidad lógica y puede tener dos valores: true, y false.

var x = false;
if (x) {
// este código no se ejecuta

}

null

El tipo Null tiene el valor: null.

undefined

Una variable a la cual no se le haya asignado valor tiene el valor undefined.

var saludo;
console.log(typeof saludo); // "undefined"

En los lenguajes con tipos dinámicos no especificamos el tipo de valor al declarar las variables y podemos utilizar el mismo nombre de variable para contener distintos tipos de datos:

var foo = 42; // foo es ahora un Number

var foo = "bar"; // foo es ahora un String

var foo = true; // foo es ahora un Boolean

En cambio en los lenguajes fuertemente tipados como en C#, especificamos el tipo de valor al declarar cada variable:



int edad = 38;

string nombre = "Marcel";

bool b = false;

Objetivos

Determinar tipos utilizando el operador typeof

El operador typeof devuelve una cadena indicando el tipo de valor de una variable.

Definamos unas variables:





var mascota = "Gato";



var hermanas = 3;



var tv = false;

Primitive wrapper objects en JavaScript

Los números, las cadenas y los valores Booleanos son primitivos, se supone que no tienen métodos ni propiedades.

var mascota = "Gato";
var hermanas = 3;
var tv = false;

La variable nombre es un string primitivo, pero se comporta como si fuera un objeto, que esta pasando aquí?

console.log(typeof mascota); // "string"
console.log(typeof hermanas); // "number"
console.log(typeof tv); // "boolean"

Cuando se invoca un método o propiedad en un dato primitivo, javascript crea una instancia de su versión en objeto o “wrapper object” por un corto periodo para poder devolver su valor y después la destruye.

var nombre = "Marcel";
console.log(nombre.length); // devuelve 6

Number

Si hubiera escrito esto antes del 2020, te diría que solo hay un tipo de dato numérico, lamentablemente (con algunas excepciones) se agregó un nuevo valor numérico llamado BigInt. En esta sección fingiremos que no existe.

const edad = 33;
const PI = 3.1416;
const descuento = 0.30;

const pesoEnDolares = 0.05; // que tristeza xD!!



edad + descuento; // 33.30, no nos interesa el tipo, solo la suma

NaN

Existe un número especial llamado NaN. Este valor es el error de una operación con números.Para mitigar este extraño comportamiento, se recomienda usar el método Number.isNaN(), también existe una función global llamada isNaN(), pero debido a la funcionalidad implícita de Javascript en querer convertir entre tipos automáticamente, nos puede dar resultados muy extraños. Así que como recomendación siempre usa Number.isNaN(). Esta última función revisa si el tipo es Number e igual a NaN, cualquier otro valor nos regresara false.

25 * undefined; // es igual a NaN
25 * {}; // es igual a NaN25 * NaN; // es igua a NaN
25 + NaN; // es igual a NaNaN === NaN; // es igual a false
NaN == NaN; // es igual a false