00 - JavaScript - Vanilla
00 - JavaScript - Vanilla
Impulsamos { talento }
Historia
JavaScript nace en 1995 desarrollado por Brendan
Eich de Netscape con el nombre de Mocha, el cual fue
renombrado posteriormente a LiveScript y cuando
Netscape fue adquirida por Sun Microsytem lo
cambiaron a JavaScript.
Aparece por primera en Netscape Navigador 2.0, pero
actualmente es usado por todos los navegadores y
webview móviles
Pero no es hasta 1997 que se crea un comité (TC39)
para estandarizar Javascript por la European Computer
Manufacturer's Association, ECMA.
Se diseña el estándar DOM (Document Object Model)
para evitar las incompatibilidades entre navegadores.
Standar ECMA-262
Impulsamos { talento }
Primeros estándares
En 1999 aparece la versión 3 del estándar
ECMAScript, que es la que más estable se ha
mantenido.
Pero Hasta 2011 no se aprobó y estandarizó la
versión 5 (ES5) que es la que utilizamos hoy en
día.
En 2015 se estableció versión ECMASCRIPT 6.
Soporte actual ES6
Desde entonces en Junio de cada año, se añade
una nueva versión de JavaScript.
Impulsamos { talento }
¿Qué es JavaScript?
JavaScript es un lenguaje de programación
interpretado de alto nivel, diseñado con sintaxis de
C.
Características de JavaScript
● Es un lenguaje de programación de Alto Nivel.
● Es Multiplataforma.
● Es interpretado, no se compila para poder ejecutarse.
● Es un lenguaje multipropósito, se puede utilizar en Frontend y Backend.
Impulsamos { talento }
Que necesitamos
● Un navegador web: Chrome, Firefox,
etc.
● Un editor de texto o IDE: Visual Code,
WebStorm, Atom, Brackets, Sublime,
etc.
● Herramientas de depuración del
navegador.
Impulsamos { talento }
<script>
console.log("Hola Mundo");
</script>
● Importando el script.
<script src="main.js"/>
Impulsamos { talento }
SINTAXIS
Impulsamos { talento }
Comentarios
KATA
Impulsamos { talento }
VARIABLES
Impulsamos { talento }
Variables
Las variables es la forma el cual JS almacena los // Creamos una Variable
datos de la aplicación por un nombre, para que var variable = 'Variable';
nosotros podamos identificarlo.
// Declarar una Variable
Para ello, usaremos la palabra clave var seguido var dato;
de un nombre para dicha variable. Luego
usaremos el operador de asignación (=) con el // Asignamos un Valor
tipo de datos que queramos almacenar. dato = 10;
Tipos de datos
Los tipos de datos especifican qué tipo de valor se guardará en una determinada
variable y se pueden categorizar en dos grupos:
● Simples: Son los tipos básicos o primarios
number 1
string 'hola'
boolean true
undefined undefined
function function() {}
● Complejos: son estructuras de datos que contienen otros tipos de datos
object
object / null
object / Array
Impulsamos { talento }
Números
Valores Booleanos
Cadenas de texto
Null
Su tipo es object:
Más info
Impulsamos { talento }
Tipo Undefined
OPERADORES
Impulsamos { talento }
Tipos
● Aritméticos.
● Lógicos.
● De asignación.
● De comparación.
● Condicionales/Ternarios.
● Cadenas de caracteres.
● Operador coma
● Operadores unarios
● Operadores de bit a bit.
Impulsamos { talento }
Operadores Aritméticos
Operadores Aritméticos
● + Unario positivo
console.log(+"3");
// -> 3, intenta convertir un número al operando y devuelve su forma
positiva
● ** Exponente
2 ** 3 //Devuelve 8
10 ** -1 //Devuelve 0.1
Impulsamos { talento }
Operadores Aritméticos
Operadores Lógicos
Operadores de Asignación
Permiten obtener métodos abreviados para evitar escribir dos veces la variable que se
encuentra a la izquierda del operador.
● = asigna var a = 1
● += Suma y asigna a += 2 // a = a + 2
● -= Resta y asigna a -= 2 // a = a - 2
● *= Multiplica y asigna a *= 2 // a = a * 2
● /= Divide y asigna a /= 2 // a = a / 2
● %= Módulo y asigna a %= 2 // a = a % 2
● **= Asignación de exponenciación a **= 2 // a = a ** 2 Binarios:
● <<= Asignación de desplazamiento a la izquierda
● >>= Asignación de desplazamiento a la derecha
● >>>= Asignación sin signo de desplazamiento a la derecha
● &= Asignacion AND
● ^= Asignación XOR
● |= Asignación OR
Impulsamos { talento }
Operadores de Comparación
KATA
Impulsamos { talento }
KATA: Calculadora
Crea una calculadora que tenga una:
● Suma
● Resta
● Multiplicación
● División
Impulsamos { talento }
ESTRUCTURA DE CONTROL
Impulsamos { talento }
Ejecución Secuencial
Hemos visto que cuando codeamos un var tabla = 5
● Condicionales.
● Bucles.
● Funciones.
Impulsamos { talento }
IF / ELSE
Impulsamos { talento }
if
El if es la sentencia de JS que nos permite if( /* Condicion == True */ ) {
decidir qué parte del código se puede ejecutar
dependiendo de un valor.
// Se ejecuta nuestro código.
if / else
Además del if, podemos complementar nuestra if( /* Condicion == True */ ) {
condiciones con la sentencia else. El else nos
permite ejecutar una parte del programa si la
// Se ejecuta nuestro código.
condición es falsa.
} else {
// Se Ejecuta SOLO si la
condición == False
}
Impulsamos { talento }
if / if else / else
Y por último, tenemos la sentencia if else, que if( /* Condición_1 == True */ ) {
nos permite proponer varias condiciones y que
se ejecute la primera que sea verdadera.
// Se Ejecuta SOLO si la condición_1 == True
} else {
}
Impulsamos { talento }
If Anidados
Y si, en ese bloque dentro de cualquiera de los If let edad = prompt('¿Cuál es tu edad?');
se puede añadir otro If, a esto lo llamamos, let acompañado = prompt('¿Cuál es tu edad?');
anidación de If o If Anidados.
let eresAdulto = edad >= 18;
Aunque es una buena práctica usar operadores let estasAcompañado = acompañado === 'SI';
lógicos como AND (&&) o OR ( || ) para evitar
anidar varios If. if( eresAdulto || estasAcompañado ){
console.log('Puedes Entrar');
También es una buena práctica guardar las }else {
condiciones en variables para que todo sea más console.log('Debes ser Mayor de Edad o estar
LEGIBLE. Acompañado');
}
Impulsamos { talento }
0 - 4: Insuficiente.
5 - 6: Suficiente.
7 - 8: Notable.
9 - 10: Sobresaliente.
Impulsamos { talento }
SWITCH
Impulsamos { talento }
switch
El switch es la otra palabra clave o sentencia switch( /* condicion */ ){
que nos ofrece JS para crear condicionales.
case 1:
// Codigo
Su sintaxis es un poco más larga, pero puede ser
útil en ocasiones concretas.
break;
default:
// Codigo
break;
}
Impulsamos { talento }
0 - 4: Insuficiente.
5 - 6: Suficiente.
7 - 8: Notable.
9 - 10: Sobresaliente.
Impulsamos { talento }
OPERADOR TERNARIO ( ?: )
Impulsamos { talento }
// Opción 2
let verPeliculaTerror = (edad >= 18)
? 'SI'
: 'NO'
Impulsamos { talento }
WHILE
Impulsamos { talento }
while
El while es una sentencia de JS preparada para let saldo = 10;
crear bucles, es decir, repetir que un fragmento
de código N veces.
while( saldo > 0){
DO WHILE
Impulsamos { talento }
do while
El do while, es la 2º forma que nos ofrece JS let saldo = 10;
para realizar bucles, con dos diferencias.
do{
La primera, es su sintaxis, que cambia un poco,
empezando con un do sin condiciones y
console.log('Has consumido 1€');
FOR
Impulsamos { talento }
for
Por último, tenemos el for como sentencia para for (let i = 0 ; i < 10 ; i++){
crear bucles. La diferencia con los anteriores
console.log(i);
bucles, es su condición en 3 pasos (separada
}
por ; ) :
KATA
Impulsamos { talento }
Usando For.
Impulsamos { talento }
FUNCIONES
Impulsamos { talento }
function (Funciones)
Las funciones son bloques de código que se function Suma(num1, num2){
declara una vez y se puede ejecutar cada vez
return num1 + num2;
que se necesite.
}
Función anónima
Llamando funciones
square(5);
KATA
Impulsamos { talento }
ARRAY
Impulsamos { talento }
Array.prototype
.length
Métodos
A continuación se detalla los métodos más usados de los Arrays.
Impulsamos { talento }
.push()
.concat()
.join()
Concatena los elementos de un array en una sóla cadena separada por un carácter opcional.
.reverse()
.unshift()
Añade nuevos elementos al inicio de un array y devuelve el número de elementos del nuevo array
modificado.
.shift()
.pop()
KATA
Impulsamos { talento }
OBJETOS
Impulsamos { talento }
Objetos (Object)
Un objeto es un valor en memoria al cual es posible referirse mediante un identificador.
En JavaScript los objetos pueden ser vistos como una colección de propiedades. Con la sintaxis
literal de objetos, un limitado grupo de propiedades son inicializadas; luego pueden ser agregadas o
eliminadas otras propiedades. Los valores de las propiedades pueden ser de cualquier tipo,
incluyendo otros objetos lo cual permite construir estructuras de datos complejas. Las propiedades
se identifican usando claves. Una clave es un valor String o Symbol.
Impulsamos { talento }
Sintaxis objeto
Asocia una clave con un valor y tiene los siguientes atributos:
{
clave: 'valor',
clave2: 1234,
'clave3': [],
}
Impulsamos { talento }
Clave: valor
Pero también tenemos funciones que son objetos regulares con una
capacidad adicional de poder ser llamadas o invocadas.
Impulsamos { talento }
KATA
Impulsamos { talento }