Tipos de datos Javascript
Las variables Javascript pueden almacenar muchos tipos de datos: números, cadenas de texto, objetos…
Ejm
var length = 16; // Number var lastName = "Johnson"; // String var x = {firstName:"John", lastName:"Doe"}; // Object
El concepto de tipos de datos
En programación los tipos de datos son un importante concepto. Para poder operar en variables, es importante saber algo sobre el tipo. Sin tipos de datos, una computadora no puede resolver esto de manera segura.
Ejm
var x = 16 + "Volvo";
¿Tiene sentido agregar “Volvo” a dieciséis? ¿Producirá un error o producirá un resultado?
JavaScript tratará el ejemplo anterior como.
var x = "16" + "Volvo";
Al agregar un número y una cadena, JavaScript tratará el número como una cadena.
Los tipos de JavaScript son dinámicos
JavaScript tiene tipos dinámicos. Esto significa que la misma variable se puede usar para contener diferentes tipos de datos.
Ejm
var x; // Now x is undefined x = 5; // Now x is a Number x = "John"; // Now x is a String
Strings Javascript
Un string (o una cadena de texto) es una serie de caracteres como “John Doe”.
Las cadenas se escriben con comillas. Puede usar comillas simples o dobles.
Ejm
var carName1 = "Volvo XC60"; // Using double quotes var carName2 = 'Volvo XC60'; // Using single quotes
Puede usar comillas dentro de una cadena, siempre que no coincidan con las comillas que rodean la cadena.
Ejm
var answer1 = "It's alright"; // Single quote inside double quotes var answer2 = "He is called 'Johnny'"; // Single quotes inside double quotes var answer3 = 'He is called "Johnny"'; // Double quotes inside single quotes
Números Javascript
Javascript sólo tiene un tipo de números. Los números pueden ser escritos con o sin decimales.
Ejm
var x1 = 34.00; // Written with decimals var x2 = 34; // Written without decimals
Los números extra grandes o extra pequeños se pueden escribir con notación científica (exponencial):
Ejm
var y = 123e5; // 12300000 var z = 123e-3; // 0.00123
Booleanos Javascript
Los booleanos solo pueden tener dos valores, true (verdadero) y false (falso).
Ejm
var x = 5; var y = 5; var z = 6; (x == y) // Returns true (x == z) // Returns false
Los booleanos a menudo se usan en pruebas condicionales.
Arrays Javascript
Las matrices de JavaScript se escriben entre corchetes. Los elementos de la matriz están separados por comas. El siguiente código declara (crea) una matriz llamada automóviles, que contiene tres elementos (nombres de automóviles).
Ejm
var cars = ["Saab", "Volvo", "BMW"];
Los índices de matriz están basados en cero, lo que significa que el primer elemento es [0], el segundo es [1], y así sucesivamente.
Objetos Javascript
Los objetos de JavaScript se escriben con llaves {}. Las propiedades de los objetos se escriben como nombre: pares de valores, separados por comas.
Ejm
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
El objeto (persona) en el ejemplo anterior tiene 4 propiedades: nombre, apellido, edad y eyeColor.
El operador typeof
Puedes usar el operador typeof de JavaScript para encontrar el tipo de una variable de JavaScript.
El operador typeof devuelve el tipo de una variable o una expresión.
Ejm
typeof "" // Returns "string" typeof "John" // Returns "string" typeof "John Doe" // Returns "string typeof 0 // Returns "number" typeof 314 // Returns "number" typeof 3.14 // Returns "number" typeof (3) // Returns "number" typeof (3 + 4) // Returns "number"
Undefined (indefinido)
En JavaScript, una variable sin valor tiene el valor undefined (indefinido). El tipo también es undefined (indefinido).
Ejm
var car; // Value is undefined, type is undefined
Cualquier variable se puede vaciar, estableciendo el valor en indefinido. El tipo también será indefinido.
Valores vacíos
Un valor vacío no tiene nada que ver con undefined. Una cadena vacía tiene tanto un valor legal como un tipo.
Ejm
var car = ""; // The value is "", the typeof is "string"
Null
En JavaScript null es “nada”. Se supone que es algo que no existe. Desafortunadamente, en JavaScript, el tipo de datos null es un objeto.
Puedes considerarlo un error en JavaScript que typeof null es un objeto. Debería ser nulo.
Puedes vaciar un objeto configurándolo como null.
Ejm
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; person = null; // Now value is null, but type is still an object
También puedes vaciar un objeto configurándolo como undefined.
Ejm
person = undefined; // Now both value and type is undefined
Diferencia entre indefinido y nulo
undefined y null son iguales en valor pero diferentes en tipo.
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
Datos primitivos
Un valor de datos primitivo es un único valor de datos simple sin propiedades y métodos adicionales.
El operador typeof puede devolver uno de estos tipos primitivos.
- string
- number
- booelan
- undefined
Ejm
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof true // Returns "boolean" typeof false // Returns "boolean" typeof x // Returns "undefined" (if x has no value)
Datos complejos
El operador typeof puede devolver uno de dos tipos complejos:
- function
- object
El operador typeof devuelve “object” para objetos, matrices y nulos. El operador typeof no devuelve “objeto” para funciones.
Ejm
typeof {name:'John', age:34} // Returns "object" typeof [1,2,3,4] // Returns "object" (not "array", see note below) typeof null // Returns "object" typeof function myFunc(){} // Returns "function"
El operador typeof devuelve “objeto” para las matrices porque en JavaScript las matrices son objetos.