---
title: "Declaración de variables usando var, let, const y tipos de datos"
excerpt: "Aquí escribo un poco sobre las variables usando var, let, const y los tipos de datos que pueden ser asignados a esas variables."
date: "2019-03-09T16:34:27.000Z"
category: "JavaScript"
seo_title: "Variables en JavaScript: var, let, const y tipos de datos"
seo_description: "Guía de declaración de variables en JavaScript con var, let y const. Diferencias de scope (global, function y block scope) con ejemplos prácticos para principiantes."
author:
  name: "angel cruz"
  picture: "https://angelcruzdevcdn.nyc3.cdn.digitaloceanspaces.com/images/me/angel-cruz.png"
---

Los tipos de datos son básicamente variables o constantes.

- Las variables pueden ser cambiadas
- Las constantes siguen siendo las mismas.

### Hablemos sobre var

Las variables en JavaScript son contenedores que contienen datos reutilizables. Es comun inicializar variables de
esta forma:

```js
var algo;
```

Los valores o tipos de datos que podemos asignar a una variable son:

- String
- Number
- Boolean
- Null
- Undefined
- Array / Object


### Ejemplo:

```js
var nombre = 'Angel';       // String
var edad = 40;              // Number
var hijos = true | false;   // Boolean
var telefono = null;        // Null
var negro;                  // Undefined

var arreglo = ['a','b','c',]; // Array
var objeto = {
    nombre: 'Angel',
    edad:   40,
};   
```

### Como declarar una variable:


- Los nombres deben comenzar con una cadena en minúscula.
- Los nombres no pueden contener símbolos o comenzar con símbolos.
- Los nombres no pueden comenzar con un número.
- Los nombres pueden contener una combinación de cadenas en mayúsculas, cadenas en minúsculas y números.



<div class="not-prose">
	<div class="flex bg-yellow-100 rounded p-4 mb-4 text-sm text-yellow-700" role="alert">
		<svg class="w-5 h-5 inline mr-3" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
			<path fill-rule="evenodd"
				d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
				clip-rule="evenodd"></path>
		</svg>
		<div>
			<p>
				Algo importante a tener en cuenta es que los valores de las variables declaradas con var pueden ser actualizables
			</p>
		</div>
	</div>
</div>


```js
var name = 'Angel';
console.log(name); // Angel
var name = 'Chris';
console.log(name); // Chris
```

### El scope de var
Es importante tener en cuenta el alcance (scope) de una variable declarada con var. Ejemplo, si tenemos declarada la siguiente variable:

```js
var name = 'Angel';
```
La misma tiene un alcance global y puede ser utilizada donde se necesite.

### ¿Que pasa cuando usamos una función?

Aquí el scope de la variable declarada con var cambia ya que solo tiene acceso dentro de la función donde fue declarada, ejemplo:

```js
function sayMyName() {
    var name = 'Angel';
    console.log(name);
}
sayMyName();
```

Efectivamente va a funcionar ya que veremos el output en la consola de desarrollo, a esto se le conoce como `function scope`



<div class="not-prose">
	<div class="flex bg-yellow-100 rounded p-4 mb-4 text-sm text-yellow-700" role="alert">
		<svg class="w-5 h-5 inline mr-3" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
			<path fill-rule="evenodd"
				d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
				clip-rule="evenodd"></path>
		</svg>
		<div>
			<p>
				Si quisiéramos acceder a la variable name fuera de la función vamos a recibir un error de variable no definida
			</p>
		</div>
	</div>
</div>


### Y ya por último, halaremos sobre `block scope`

Por ejemplo:


```js
var age = 100;

if (age &gt; 12) {
    var dogYears = age * 7;
    console.log('Tienes ' + dogYears + ' años de perro') // Tienes 700 años de perro
}
```

A diferencia de `function scope` con los `block scope` ocurre algo interesante y es que se pueden acceder a las variables que esten dentro de `{}`. Si vamos a nuestra consola y escribimos `dogYears` vamos a tener como resultado el valor 700
    

### Hablemos sobre let y const

Las variables declaradas con `let` y `const` son del tipo  `block scope`

Por ejemplo:

```js
var age = 100;

if (age &gt; 12) {
    let dogYears = age * 7;
    console.log('Tienes ' + dogYears + ' años de perro') // Tienes 700 años de perro
}
```

Lo de arriba funciona exactamente igual, la única diferencia estaría en el momento de acceder a la variable `dogYears` vamos a obtener un error de variable no declarada ya que la variable declarada con `let` sólo se puede acceder y usar dentro de `{}` y esto también ocurre si cambiamos `let` por `const`.

---

## Sitemap

Índice completo del sitio: [/sitemap.md](https://www.angelcruz.dev/sitemap.md)

Canónico HTML: [https://www.angelcruz.dev/post/declaracion-de-variables-usando-var-let-const-y-tipos-de-datos](https://www.angelcruz.dev/post/declaracion-de-variables-usando-var-let-const-y-tipos-de-datos)
