Estudio

Polyfills

Un polyfill es un script de código que sirve para emular una característica que un desarrollador necesita en un navegador cuando este no dispone de ella de forma nativa. En su mayoría, los polyfills están escritos en javascript, y nos permiten desarrollar apliaciones web centrados en nuevos estándares, pues suplen la carencia de los navegadores más antiguos en el momento de implementarlos.

El uso de polyfills invita a usar una detección de características del navegador, en lugar de comprobar su versión,  puesto que con su uso únicamente habría que comprobar si el navegador, sea cual sea, y sea cual sea su versión, dispone de la cualidad que necesitamos en nuestro desarrollo, y de no ser así, usaríamos un polyfill que la emulara.

Hoisting de Javascript

Explicado de un modo muy breve, consiste en que javascript, en el momento de compilar el código, prioriza las declaraciones de variables, siendo lo primero a tratar dentro de cada contexto. Es importante tener en cuenta que esto no aplica para las asignaciones, únicamente para la declaración. Estudia el siguiente script:

/*
 * Logamos 'undefined' por que la declaración de x ha sido alzada
 * por encima de esta función, pero no su asignación. Observa,
 * no obstante, que no recibimos un error de referencia a x a pesar
 * de que la línea dónde se declara y asigna está justo debajo.
 */
console.log("x:", x)
var x = "Primera asignación";

//Ahora sí logamos 'Primera asignación'
console.log("x:", x)

(function () {
 /* No logamos 'Primera asignación' sino 'undefined', porque la
  * segunda declaración ha sido elevada al inicio de su contexto,
  * sobrescribiendo a la primera declaración y asignación.
  */
  console.log("x:", x);
  var x = "Segunda asignación";

  // Ahora sí, logamos 'Segunda asignación'
  console.log("x:", x);
}());

Peculiaridades en los lenguajes de programación

Con este post quiero inaugurar una sección donde tratar las peculiaridades de los distintos lenguajes de programación. Me refiero con la palabra peculiaridades a aquellos detalles que, en ocasiones, no se tienen presente cuando se está desarrollando, especialmente cuando se manejan distintos lenguajes en poco espacio de tiempo o cuando se comienza a desarrollar con un nuevo lenguaje que no se conoce en profundidad. Esto puede llevar a comportamientos extraños, o que no alcanzamos a comprender, en nuestra aplicación, y por tanto muy difíciles de resolver. Para comenzar, he elegido el hoisting de javascript.

Características funcionales de Javascript

Javascript no fué creado como un lenguaje de programación funcional, pero dispone de ciertas características que nos permiten programar en un estilo funcional al usarlo. Te las listo con la intención de escribir un post sobre cada una de ellas y enlazarlo aquí abajo:

  • Las funciones son objetos de primera clase
  • Recursión
  • Funciones flecha (Arrow functions)
  • Clausuras (Closures)
  • El operador spread