# Variables y Tipos de datos

### **Variables y Tipos de datos en JavaScript**

**JavaScript** es un lenguaje de **tipado débil** o también conocido como **dinámico,** esto significa que no es necesario especificar si nuestra variable será un **`texto`, `numérico`,`lógica`** o incluso si contendrán alguna información en ella **`null`.**

**Ejemplo:**

Podrás observar que una misma variable puede tener cualquier tipo de dato asignada:

{% tabs %}
{% tab title="Recursos" %}

```javascript
let variable = 42; // variable es ahora un Number 
let variable = "texto"; // variable es ahora un String 
let variable = true; // variable es ahora un Boolean o lógica
```

{% endtab %}
{% endtabs %}

### **Tipos de datos**

**Actualmente bajo el estándar ECMAScript** contamos con siete tipos de datos diferentes, que se dividen en dos grupos, los **primitivos** y los de tipo **object.**

**Tipos de datos Primitivos**

**Boolean:** Es un tipo de dato lógico que solo puede tener los valores **`true` (verdadero)** y **`false`(false).**

{% tabs %}
{% tab title="JavaScript" %}

```javascript
false; // variable es ahora un Boolean o lógica
```

{% endtab %}
{% endtabs %}

**Null:** Representa una referencia que apunta a una inexistencia, ya que si a una variable le asignamos el **valor 0** la variable si contendría un valor realmente a diferencia de **`Null`**&#x6C;et variable = 42; // variable es ahora un Number let variable = "texto"; // variable es ahora un String let variable = true; // variable es ahora un Boolean o lógica

{% tabs %}
{% tab title="JavaScript" %}

```javascript
let variable = null; // variable es ahora un null
let variable = 0; // variable es ahora un Number
```

{% endtab %}
{% endtabs %}

**Undefined:** Es un valor asignado a una **variable** que fue declarada pero no se le fue asignado ningún valo&#x72;**: por ejemplo:**

{% tabs %}
{% tab title="JavaScript" %}

```javascript
let variable // variable es ahora un Undefined
```

{% endtab %}
{% endtabs %}

**Number:** Es un tipo de dato numérico de tipo flotante de **64bits,** por lo cual puede contener números con punto decimal. En otros lenguajes de programación pueden existir distintos tipos numéricos, **por ejemplo: integers (solo pueden contener enteros), floats, doubles, entre otros.**

{% tabs %}
{% tab title="JavaScript" %}

```javascript
let variable = 66; // variable es ahora un Number
```

{% endtab %}
{% endtabs %}

**String:** En cualquier lenguaje de programación, un **string** es una secuencia de caracteres usado para representar un texto.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
let variable = "Hola Mundo"; // variable es ahora un String
let variable = "A"; // variable es ahora un String
```

{% endtab %}
{% endtabs %}

**Symbol(Disponible desde ECMAScript 6):** Es un tipo de dato en cuyos casos son únicos e inmutables. En algunos lenguajes de programación son también llamados **atoms.**

{% tabs %}
{% tab title="JavaScript" %}

```javascript
let variable = Symbol("Hola Mundo"); // variable es ahora un Symbol
```

{% endtab %}
{% endtabs %}

### **Tipos de datos Object:**&#x20;

**Object:** Hace referencia a una estructura de datos que contiene tanto **datos** o **instrucciones.**&#x20;

Algunas veces los Objects se refieren a cosas del mundo real, **por ejemplo:** un object de un coche pueden contener tantos elementos sean necesarios para representarlo.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
let variable = Symbol("Hola Mundo"); // variable es ahora un Symbol
```

{% endtab %}
{% endtabs %}
