Javascript - ES6
Javascript - ES6
● Gestión de dependencias
● Ejecución de tareas
● Conversión de formatos
● Servidor de desarrollo
● Carga y uso de módulos de todo tipo (AMD, CommonJS o ES2015)
Es una herramienta extremadamente útil cuando desarrollamos aplicaciones web diseñadas con
filosofía modular, es decir, separando el código en módulos que luego se utilizan como dependencias en
otros módulos.
Módulos
Los sistemas de módulos para Javascript surgen como una necesidad de los
mismos programadores, de encapsular distintas funcionalidades en "bloques de
código" reutilizables.
{ "presets": ["@babel/preset-env"] }
"scripts": {
"build": "webpack --watch",
"build-babel": "babel src -d output --watch"
}
Instalaciones previas
8- Agregar un archivo en la raíz del proyecto llamado webpack.config.js
9- Documentación -> guías -> Getting Started -> Modules, copiar el codigo que
dice webpack.config.js dejar el código de la siguiente manera:
const path = require('path');
module.exports = {
entry: './src/app.js',
output: {
filename: 'bundle.js',
path: path.join(__dirname, 'dist'),
},
module: {
rules: [
{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
]
},
mode: 'development'
};
Instalaciones previas
10- Crear dentro de src un archivo app.js
(function() {
const PI;
PI = 3.15;
// ERROR, porque debe asignarse un valor en la
// declaración
})();
(function() {
const PI = 3.15;
PI = 3.14159;
// ERROR de nuevo, porque es sólo-lectura
})();
Template Strings
También podemos tener String multilínea sin necesidad de concatenarlos con +.
//ES5
let saludo = "hola " +
"como " +
"estas ";
//ES6
let saludo = `hola
como
estas`;
Template Strings
Con ES6 podemos interpolar Strings de una forma más sencilla que como
estábamos haciendo hasta ahora. Fíjate en este ejemplo:
//ES6
let nombre1 = "JavaScript";
let nombre2 = "awesome";
console.log(`Sólo quiero decir que ${nombre1} is ${nombre2`);
// Solo quiero decir que JavaScript is awesome
Función Arrow
Ahora contamos con una nueva forma de escribir funciones mucho más limpias y
claras, veamos el siguiente ejemplo:
Aunque no deja de ser un azúcar sintáctico (Sugar Syntax) porque en JavaScript no tenemos clases,
tenemos prototipos.
//ES5
function(valor) {
valor = valor || "foo";
}
//ES6
function(valor = "foo") {...};
Módulos
Ahora JavaScript se empieza a parecer a lenguajes como Python o Ruby.
Podemos llamar a las funciones, clases importando y exportando.
//File: lib/person.js //File: app.js
module "person" { import { hello } from "person";
export function hello(nombre) {
return nombre; var app = {
} foo: function() {
hello("Carlos");
}
},
name: “alex”
}
export app;