let nombre = "Pepito";
let nombre = "Pepito";
let apellidos = "Grillo";
console.log(`${nombre} ${apellidos}`); // Salida: "Pepito Grillo"
Los //template strings// también permiten strings multilínea:
const html = `
Hola
Este es otro párrafo
`;
===== Constantes =====
Se utilizan cuando queremos definir valores que no se modificarán a lo largo de la ejecución del programa. Se declaran con la palabra reservada ''const'':
const nombre = "Pepito";
===== Destructuring =====
==== Objetos ====
Partimos de un objeto literal:
const persona = {
nombre: "Pepito",
apellido: "Grillo",
edad: 109,
getNombre: function() {
return `${this.nombre} ${this.apellido}`;
}
}
Si queremos extraer las propiedades del objeto:
const {nombre, apellidos, edad} = persona;
console.log(nombre, apellidos, edad);
Gracias a esta característica de "desestructuración" nos ahorramos tener que hacer lo siguiente:
const nombre = persona.nombre;
const apellidos = persona.apellidos;
const edad = persona.edad;
console.log(nombre, apellidos, edad);
También podemos desestructurar el objeto dentro de una función:
function imprimePersona({nombre, apellidos, edad}) {
console.log(nombre, apellidos, edad);
}
imprimePersona(persona);
==== Arrays ====
const personas = [
"Pepito",
"Fulanito",
"Menganito"
];
const [p1, p2, p3] = personas;
console.log(p1, p2, p3); // Pepito, Fulanito, Menganito
Si solo quisiésemos coger el último:
const [, , p3] = personas;
console.log(p3); // Menganito
===== Funciones de flecha =====
Declaración típica de una función:
function sumar(a, b) {
return a + b;
}
console.log(sumar(5,2)); // 7
Transformación a una **función de flecha**:
const sumar = (a, b) => {
return a + b;
}
Para este ejemplo, como la función tiene solo una línea y esa línea es el ''return'', se podría resumir de la siguiente manera:
const sumar = (a, b) => a + b;
===== Callback =====
Una función de //callback// es una función que se pasa a otra función como un argumento, que luego se invoca dentro de la función externa para completar algún tipo de rutina o acción.
La función ''setTimeout'' admite un callback como argumento:
setTimeout(function() {
console.log("Hola, mundo");
}, 1000);
Un ejemplo más complejo:
const getUsuarioByID = (id, callback) => {
const user = {
id: id,
nombre: "Pepito"
}
setTimeout( () => {
callback(user)
}, 1500)
}
getUsuarioByID(10, (usuario) => {
console.log(usuario);
});
===== Consola =====
==== Limpiar ====
console.clear();
==== Escribir ====
console.log("Hola, mundo!");
===== Frameworks =====
* [[informatica:programacion:javascript:vue.js|Vue.js]]
* [[https://angular.io/|Angular]]
* [[https://reactjs.org/|React]]
===== Recursos =====
* [[https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_scroll_to_top|Botón de volver al inicio]]
* [[https://www.tutorialrepublic.com/faq/how-to-determine-if-variable-is-undefined-or-null-in-javascript.php|Cómo determinar si una variables es undefined o null]]
* [[https://exploringjs.com/impatient-js/index.html|JavaScript for impatient programmers (ES2021 edition)]]
* [[https://www.w3schools.com/js/default.asp|JavaScript Tutorial]] (W3Schools)
* [[https://kbpsystem777.github.io/You-Dont-Know-JS/|You Don’t Know JS (book series)]]
==== Libros ====
* [[https://nostarch.com/ejs3|Eloquent JavaScript]], de Marijn Haverbeke. Tiene [[https://eloquentjavascript.net/|versión online]] (gratuita).
* [[https://www.oreilly.com/library/view/javascript-the-definitive/9781491952016/|JavaScript: The Definitive Guide]], de David Flanagan
* [[https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/README.md|You don't know JS]], de Kyle Simpson
* [[https://github.com/getify/You-Dont-Know-JS|You don't know JS yet]], de Kyle Simpson.