Sesión 1: Aspectos sobre NodeJs y JavaScript
JavaScript
Javascript es un lenguaje de programación que surgió con el objetivo inicial de programar ciertos comportamientos sobre las páginas web y HTML, respondiendo a la interacción del usuario y la realización de automatismos sencillos.
Los objetos del DOM modelizan tanto la ventana del navegador como el historial, el documento o página web, y todos los elementos que pueda tener dentro la propia página, como párrafos, divisiones, tablas, formularios y sus campos, etc. A través del DOM se puede acceder, por medio de Javascript, a cualquiera de estos elementos, es decir a sus correspondientes objetos para alterar sus propiedades o invocar a sus métodos. Con todo, a través del DOM, queda disponible para los programadores de Javascript, cualquier elemento de la página, para modificarlos, suprimirlos, crear nuevos elementos y colocarlos en la página, etc
El modelo HTML DOM esta construido como un árbol de objetos:
Con dicho modelo de objetos, JavaScript obtiene toda la potencia que necesita para crear HTML de manera dinámica. Es por esto que JavaScript tiene la posibilidad de:
diferentes navegadores existentes en el mercado. Para superar este problema, se presentó JavaScript ante el organismo de normalización ECMA (European Computer Manufacturer’s Association) para crear una base de lenguaje consensuada y en el año 1996 se aprobó como la norma ECMA-262.
El lenguaje normalizado se llama ECMAScript y desde entonces ha pasado por varias versiones más. A pesar de que tanto JavaScript como sus variantes tienen extensiones y alcances más amplios que ECMAScript, siguen siendo compatibles con el núcleo que es ECMAScript. En la práctica JavaScript sigue siendo el nombre usado para referenciar al lenguaje.
Back-end: NodeJs
NodeJS es un código abierto de JavaScript que está diseñado para generar aplicaciones web de forma altamente optimizada. Node.js es una forma de ejecutar JavaScript en el servidor, basado en eventos. Node ejecuta JavaScript utilizando el motor V8, desarrollado por Google para uso de su navegador Chrome. Aprovechando el motor V8 permite a Node proporciona un entorno de ejecución del lado del servidor que compila y ejecuta JavaScript a velocidades increíbles. El aumento de velocidad es importante debido a que V8 compila JavaScript en código de máquina nativo, en lugar de interpretarlo o ejecutarlo como bytecode. Node es de código abierto, y se ejecuta en Mac OS X, Windows y Linux.
Javascript es un lenguaje de programación que surgió con el objetivo inicial de programar ciertos comportamientos sobre las páginas web y HTML, respondiendo a la interacción del usuario y la realización de automatismos sencillos.
- Evolución del lenguaje:
Año | JavaScript | ECMA | Navegador |
---|---|---|---|
1996 | 1.0 | Netscape 2 | |
1997 | ECMAScript 1 | IE 4 | |
1998 | 1.3 | Netscape 4 | |
1999 | ECMAScript 2 | IE 5 | |
2000 | ECMAScript 3 | IE 5.5 | |
2000 | 1.5 | Netscape 6 | |
2000 | 1.5 | Firefox 1 | |
2011 | ECMAScript 5 | IE 9 | |
2011 | 1.8.5 | Firefox 4 | |
2012 | IE 10 | ||
2012 | Chrome 23 | ||
2012 | Safari 6 | ||
2013 | Firefox 21 | ||
2013 | Opera 15 | ||
2015 | ECMAScript 2015 | Soportado parcialmente en todos los navegadores |
- JavaScript y DOM (Document Object Model):
Los objetos del DOM modelizan tanto la ventana del navegador como el historial, el documento o página web, y todos los elementos que pueda tener dentro la propia página, como párrafos, divisiones, tablas, formularios y sus campos, etc. A través del DOM se puede acceder, por medio de Javascript, a cualquiera de estos elementos, es decir a sus correspondientes objetos para alterar sus propiedades o invocar a sus métodos. Con todo, a través del DOM, queda disponible para los programadores de Javascript, cualquier elemento de la página, para modificarlos, suprimirlos, crear nuevos elementos y colocarlos en la página, etc
El modelo HTML DOM esta construido como un árbol de objetos:
Con dicho modelo de objetos, JavaScript obtiene toda la potencia que necesita para crear HTML de manera dinámica. Es por esto que JavaScript tiene la posibilidad de:
- Cambiar todos los elementos HTML en la página.
- Cambiar todos los atributos HTML en la página.
- Cambiar todos los estilos CSS en la página.
- Eliminar elementos y atributos HTML existentes.
- Agregar nuevos elementos y atributos HTML.
- Reaccionar a todos los eventos HTML existentes en la página.
- Crear nuevos eventos HTML en la página.
- Estándares:
diferentes navegadores existentes en el mercado. Para superar este problema, se presentó JavaScript ante el organismo de normalización ECMA (European Computer Manufacturer’s Association) para crear una base de lenguaje consensuada y en el año 1996 se aprobó como la norma ECMA-262.
El lenguaje normalizado se llama ECMAScript y desde entonces ha pasado por varias versiones más. A pesar de que tanto JavaScript como sus variantes tienen extensiones y alcances más amplios que ECMAScript, siguen siendo compatibles con el núcleo que es ECMAScript. En la práctica JavaScript sigue siendo el nombre usado para referenciar al lenguaje.
- Aspectos generales: Tipos de datos, salidas, funciones, llamadas, etc:
- Salidas:
- innerHTML.
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = 5 + 6; </script>
- document.write().
<script> document.write(5 + 6); </script>
- window.alert().
<script> window.alert(5 + 6); </script>
- console.log().
<script> console.log(5 + 6); </script>
- Sentencias:
var a, b, c; // Declarar 3 variables a = 5; // Asignar el valor 5 a b = 6; // Asigna el valor 6 a b c = a + b; // Asigna la suma de a y b a c
- Operadores:
Operador | Descripción |
---|---|
+ | Adicción |
- | Sustracción |
* | Multiplicación |
** | Exponenciación |
/ | División |
% | Módulo |
++ | Incremento |
-- | Decremento |
- Tipos de datos:
var length = 16; // Número var lastName = "Johnson"; // Cadena var x = {firstName:"John", lastName:"Doe"}; // Objeto
- Funciones:
// Llamada var x = nombre(4, 3, 6); // Declaración function nombre(parametro1, parametro2, parametro3) { // código que será ejecutado return ...; // El retorno es opcional }Puede encontrar más información en: JavaScript Tutorial.
Back-end: NodeJs

- Aspectos:
- Un thread simple: Se basa en el tratamiento de conexiones de forma unificada a partir de un único hilo complementado con un bucle de eventos (Event Loop) de tipo asíncrono. De este modo, las peticiones que se vayan haciendo reciben un tratamiento en forma de eventos y pertenecen a este único bucle.
- Concurrente no paralelo: Realizar varias tareas a la vez de manera no paralela.
- Asincrónico: Esto significa que todas las tareas que se desarrollan por el servidor se hacen de forma paralela por lo que pueden efectuarse de forma simultánea y sin que se produzca ningún tipo de bloqueo en el flujo de trabajo. El resultado es una ventaja competitiva considerable que proporciona a la arquitectura de las aplicaciones web una mayor potencia y velocidad de procesamiento.
- Llamadas a callbacks: Diferentes procesos no se desarrollarán en un mismo nivel. De este modo, aunque todos los eventos formen parte de un mismo hilo de procesos, se trabajará con ellos mediante funciones paralelas dentro del mismo bucle. Cuando una tarea en segundo plano se ejecuta la función callback resuelve la entrega del resultado y puede ser entregado al cliente en un tiempo muy reducido.
- ¿Qué se puede hacer con NodeJs?:
- Generar páginas dinámicas.
- Crear, abrir, leer, escribir, borrar y cerrar archivos del servidor.
- Recolectar datos de un formulario.
- Operaciones transaccionales de base de datos: agregar, modificar, borrar, entre otros.
- Módulos:
Se incluyen a través de la instrucción: require('nombreModulo').
- Ejemplo:
Referencias Bibliográficas:
Node.js: ¿Qué es y para que sirve NodeJS? | ¿Simplemente qué es Node.js? | What function gets put into EventLoop in NodeJs and JS | Node.js Built-in Modules | Javascript a fondo | JavaScript Versions | JavaScript HTML DOM | Qué es el DOM | GUÍA DE ESTÁNDARES WEB
- Ejemplo:
var http = require('http');Además, se pueden crear módulos propios usando exports para que las funciones puedan utilizarse fuera del mismo.
exports.myDateTime = function(){ return Date(); };
- Ejemplos de módulos:
Módulo | Descripción |
---|---|
assert | Proporciona un conjunto de pruebas de aserción |
buffer | Para manejar datos binarios |
child_process | Para ejecutar un proceso hijo |
cluster | Para dividir un solo proceso nodo en múltiples procesos |
crypto | Para manejar las funciones criptográficas de OpenSSL |
dgram | Proporciona implementación de sockets de datagramas UDP |
dns | Para realizar búsquedas de DNS y funciones de resolución de nombres |
domain | Obsoleto. Para manejar errores no manejados |
events | Para manejar eventos |
fs | Para manejar el sistema de archivos |
http | Para hacer que Node.js actúe como un servidor HTTP |
https | Para hacer que Node.js actúe como un servidor HTTPS |
net | Para crear servidores y clientes |
os | Proporciona información sobre el sistema operativo |
path | Para manejar rutas de archivos |
punycode | Obsoleto. Un esquema de codificación de caracteres |
querystring | Para manejar cadenas de consulta de URL |
readline | Para manejar flujos legibles una línea a la vez |
stream | Para manejar la transmisión de datos |
string_decoder | Para decodificar objetos de búfer en cadenas |
timers | Para ejecutar una función después de un número dado de milisegundos |
tls | Implementar los protocolos TLS y SSL |
tty | Proporciona clases usadas por un terminal de texto |
url | Para analizar cadenas de URL |
util | Para acceder a las funciones de utilidad |
v8 | Para acceder a información sobre V8 (el motor de JavaScript) |
vm | Para compilar código JavaScript en una máquina virtual |
zlib | Para comprimir o descomprimir archivos |
- Pre-requisitos:
Referencias Bibliográficas:
Node.js: ¿Qué es y para que sirve NodeJS? | ¿Simplemente qué es Node.js? | What function gets put into EventLoop in NodeJs and JS | Node.js Built-in Modules | Javascript a fondo | JavaScript Versions | JavaScript HTML DOM | Qué es el DOM | GUÍA DE ESTÁNDARES WEB
Comentarios
Publicar un comentario