Variables

Las Variables se utilizan para almacenar datos

Las variables solo tienen visibilidad (ambito) dentro de las funciones donde se declaran

Antes de poder utilizar una variable hay que:

  • Declarar la variable (con la sentencia var)
  • Inicializar la variable (en el momento de la declaración o despues)
var a = 1;
var b;
b = 2;

Las variables son Case Sensitive

var case_matters = 'lower';
var CASE_MATTERS = 'upper';
case_matters
CASE_MATTERS

¿Cómo chequear la existencia de una variable?

Forma Mala

>>> var result = '';
>>> if (somevar){result = 'yes';}
somevar is not defined
>>> result;
""

T> Genera un warning y que somevar devuelva false no quiere decir que no esté definida

Forma Correcta

>>> var somevar;
>>> if (typeof somevar !== "undefined"){result = 'yes';}
>>> result;
""
>>> somevar = 123;
>>> if (typeof somevar !== "undefined"){result = 'yes';}
>>> result;
"yes"

T> Si la variable está definida y tiene algún valor, su tipo de datos siempre será distinto de undefined

Primitivas y Tipos de Datos

Cualquier valor que se utilize en JS es de un cierto tipo. En Javascript existen los siguientes tipos de datos primitivos:

  • Number: Puede contener numeros enteros (integer), decimales (float), hexadecimales, octales, exponentes y los números especiales NaN y Infinity
  • String: Cualquier numero de caracteres entre comillas
  • Boolean: puede ser true or false
  • Undefined: Es un tipo de datos con un solo valor: undefined
    Lo devuelve JS cuando no existe una variable o no está inicializada.
  • Null: Otro tipo de datos con un solo valor: null
    Lo podemos asignar nosotros para inicializar a vacio.

Cualquier valor que no pertenezca a uno de estos 5 tipo de primitivas es un objeto

Asi que los tipos de datos en javascript pueden ser:

  • Primitivas (Los 5 tipos)
  • No primitivas (Objetos)

Aunque existe el operador typeof que devuelve el tipo de dato, es mejor utilizar Object.prototype.toString

>>> typeof([1,2,3])
"object"
>>> Object.prototype.toString.call([1,2,3])
"[object Array]"
>>> typeof(function(){})
"function"
>>> Object.prototype.toString.call(function(){})
"[object Function]"
>>> typeof(new Date())
"object"
>>> Object.prototype.toString.call(new Date())
"[object Date]"
>>> typeof(27)
"number"
>>> Object.prototype.toString.call(27)
"[object Number]"

Existe el valor especial NaN (Not a Number) que obtenemos cuando intentamos hacer una operación que asume numeros pero la operación falla.

>>> var a = 10 * f;
>>> a
NaN

Operadores (Aritméticos, Lógicos y de Comparación)

Los Operadores toman uno o dos valores (o variables), realizan una operación, y devuelven un valor

El operador simple de asignación es =

var a = 1;

Operadores Aritméticos

Los operadores aritméticos básicos son:

+ Suma

>>> 1 + 2;
3

- Resta

>>> 99.99 - 11;
88.99

* Multiplicación

>>> 2 * 3;
6

/ División

>>> 6 / 4;
1.5

% Modulo

El resto de la división

>>> 6 % 3;
0
>>> 5 % 3;
2

Podemos utilizar el operador modulo, por ejemplo, para comprobar si un numero es par (% = 0) o impar (% = 1) .

>>> 4 % 2;
0
>>> 5 % 2;
1

++ Incremento en 1

Post-incremento devuelve el valor original (return) y despues incrementa el valor en 1.

>>> var a = 123; var b = a++;
>>> b;
123
>>> a;
124

Pre-incremento incrementa el valor en 1 y despues devuelve (return) el nuevo valor (ya incrementado).

>>> var a = 123; var b = ++a;
>>> b;
124
>>> a;
124

-- Decremento en 1

Post-decremento devuelve el valor original (return) y despues resta el valor en 1.

>>> var a = 123; var b = a--;
>>> b;
123
>>> a;
122

Pre-incremento resta el valor en 1 y despues devuelve (return) el nuevo valor (ya restado).

>>> var a = 123; var b = --a;
>>> b;
122
>>> a;
122

Tambien hay operadores compuestos

>>> var a = 5;
>>> a += 3;
8

Operadores Lógicos

Los Operadores Lógicos son:

  • ! → logical NOT (negation)

  • && → logical AND

  • || → logical OR

>>> var b = !true;
>>> b; 
false

La doble negación nos devuelve el valor original

>>> var b = !!true;
>>> b; 
true

Las posibles operaciones y sus resultados son:

Operation Result
true && true true
true && false false
false && true false
false && false false
true ❘❘ true true
true ❘❘ false true
false ❘❘ true true
false ❘❘ false false

Operadores de Comparación

Los Operadores de Comparación son:

== Igualdad

Devuelve true cuando los dos operandos son iguales. Los operandos son convertidos al mismo tipo de datos antes de la comparacion

>>> 1 == 1;
true
>>> 1 == 2;
false
>>> 1 == '1';
true

=== Igualdad y Tipo

Devuelve true cuando los dos operandos son iguales Y cuando son del mismo tipo de datos. Suele ser mejor y más seguro, utilizar esta comparación de igualdad (no hay transformaciones de tipo no controladas)

>>> 1 === '1';
false
>>> 1 === 1;
true

!= No Igualdad

Devuelve true cuando los dos operandos NO son iguales (despues de una conversion de tipo)

>>> 1 != 1;
false
>>> 1 != '1';
false
>>> 1 != 2;
true

!== No Igualdad Sin conversion de tipo

Devuelve true cuando los dos operandos NO son iguales o cuando son de tipos diferentes

>>> 1 !== 1;
false
>>> 1 !== '1';
true

> Mayor que

Devuelve true si el operando de la izquierda es mayor que el de la derecha

>>> 1 > 1;
false
>>> 33 > 22;
true

>= Mayor o Igual que

Devuelve true si el operando de la izquierda es mayor o igual que el de la derecha

>>> 1 >= 1;
true

< Menor que

Devuelve true si el operando de la izquierda es menor que el de la derecha

>>> 1 < 1;
false
>>> 1 < 2;
true

<= Menor o Igual que

Devuelve true si el operando de la izquierda es menor o igual que el de la derecha

>>> 1 <= 1;
true
>>> 1 <= 2;
true

Conversiones

Si utilizamos un numero entre comillas (string) en una operación aritmética Javascript lo convierte en numero

>>> var s = "100"; typeof s; 
"string" 
>>> s = s * 1; 
100 
>>> typeof s; 
"number"

¡OJO! undefined y null devuelven cosas diferentes al convertirlas a numero

>>> 1*undefined 
NaN
>>> 1*null 
0

Si utilizamos true or false entre comillas Javascript lo convierte en string

>>> var b = "true"; typeof b; 
"string"

La doble negación !! es una forma sencilla de convertir cualquier valor en su Booleano correspondiente.

>>> !!0
false
>>> !!1
true
>>> !!""
false
>>> !!"hola"
true
>>> !!undefined
false
>>> !!null
false

Aplicandolo podemos comprobar como cualquier valor covertido a Booleano es true excepto:

  • ""
  • null
  • undefined
  • 0
  • NaN
  • false

results matching ""

    No results matching ""