Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
wiki2:js [2022/11/03 08:34] alfred [JQuery (again)] |
wiki2:js [2022/11/03 16:21] (actual) |
||
|---|---|---|---|
| Línea 909: | Línea 909: | ||
| map_1.get(4); | map_1.get(4); | ||
| </code> | </code> | ||
| + | |||
| + | |||
| + | |||
| + | ===== Javascript Snippets ===== | ||
| + | |||
| + | |||
| + | ==== Merge two objects ==== | ||
| + | <code> | ||
| + | Object.assign(obj1, obj2); | ||
| + | let newObject = Object.assign({}, obj1, obj2, obj3, etc); | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== URL parameters ====== | ||
| + | <code> | ||
| + | var urlParams = new URLSearchParams(window.location.search); | ||
| + | |||
| + | console.log(urlParams.has('post')); // true | ||
| + | console.log(urlParams.get('action')); // "edit" | ||
| + | console.log(urlParams.getAll('action')); // ["edit"] | ||
| + | console.log(urlParams.toString()); // "?post=1234&action=edit" | ||
| + | console.log(urlParams.append('active', '1')); // "?post=1234&action=edit&active=1" | ||
| + | </code> | ||
| + | |||
| + | ==== Local Storage ==== | ||
| + | |||
| + | <code> | ||
| + | window.localStorage.setItem('test', 'hola'); | ||
| + | </code> | ||
| + | |||
| + | * setItem(): Add key and value to localStorage | ||
| + | * getItem(): Retrieve a value by the key from localStorage | ||
| + | * removeItem(): Remove an item by key from localStorage | ||
| + | * clear(): Clear all localStorage | ||
| + | * key(): Passed a number to retrieve nth key of a localStorage | ||
| + | |||
| + | |||
| + | |||
| ===== JavaScript Notes ===== | ===== JavaScript Notes ===== | ||
| Línea 1052: | Línea 1090: | ||
| Las reglas (rules) son un array de objetos js con varias propiedades. La primera es una expresión regular correspondiente a los nombres de ficheros, ''test'', si se valida se ejecutará una serie de "comandos" dentro del array de ''use''. | Las reglas (rules) son un array de objetos js con varias propiedades. La primera es una expresión regular correspondiente a los nombres de ficheros, ''test'', si se valida se ejecutará una serie de "comandos" dentro del array de ''use''. | ||
| + | |||
| + | ===== More JavaScript ===== | ||
| + | ==== Default arguments on functions ==== | ||
| + | <code javascript> | ||
| + | const defaultPerson = { | ||
| + | name: { | ||
| + | first: "Shane", | ||
| + | last: "McConkey" | ||
| + | }, | ||
| + | favActivity: "skiing"}; | ||
| + | function logActivity(person = defaultPerson) { | ||
| + | console.log(`${person.name.first} loves ${person.favActivity}`); | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | ==== Arrow functions ==== | ||
| + | This: | ||
| + | <code javascript> | ||
| + | const lordify = function(firstName) { | ||
| + | return `${firstName} of Canterbury`; | ||
| + | }; | ||
| + | </code> | ||
| + | Is the same than this: | ||
| + | <code javascript> | ||
| + | const lordify = firstName => `${firstName} of Canterbury`; | ||
| + | </code> | ||
| + | Arrow functions protect the scope of this. | ||
| + | |||
| + | For example this fails: | ||
| + | <code javascript> | ||
| + | const tahoe = { | ||
| + | mountains: ["Freel", "Rose", "Tallac", "Rubicon", "Silver"], | ||
| + | print: function(delay = 1000) { | ||
| + | console.log(this); // Window {} | ||
| + | setTimeout(function() { | ||
| + | console.log(this.mountains.join(", ")); | ||
| + | }, delay); | ||
| + | }}; | ||
| + | tahoe.print(); // Uncaught TypeError: Cannot read property 'join' of undefined | ||
| + | </code> | ||
| + | But this not: | ||
| + | <code javascript> | ||
| + | const tahoe = { | ||
| + | mountains: ["Freel", "Rose", "Tallac", "Rubicon", "Silver"], | ||
| + | print: function(delay = 1000) { | ||
| + | setTimeout(() => { | ||
| + | console.log(this.mountains.join(", ")); | ||
| + | }, delay); | ||
| + | } | ||
| + | }; | ||
| + | tahoe.print(); // Freel, Rose, Tallac, Rubicon, Silver | ||
| + | </code> | ||