Seleccionar página
Seguramente la mayor parte de los programadores Javascript se han olvidado o directamente no conocen la instrucción void. Este es un curioso recurso, bastante utilizado al inicio de Javascript, y que ha quedado en desuso. No obstante, tiene algunas características que pueden ser interesantes.

void

void es un operador en Javascript y se puede utilizar de estas dos formas:

  • void (expresion)
  • void expresion

El operador void indica que se evaluará la expresión que le sigue sin devolver ningún valor (o lo que es lo mismo, devolviendo undefined). Los paréntesis son completamente opcionales.

Código en blanco

En ocasiones nos interesa dejar partes del código intencionadamente sin contenido, por ejemplo, cuando queremos capturar un error, pero no queremos hacer nada con él y simplemente lo ignoramos.

try {
    JSON.parse(texto);
} catch(err) {

}

Es común que en esos casos algún otro programador no comprenda el código, o nosotros mismos tras algún tiempo cuando volvamos a leer estas instrucciones sospechemos que nos dejamos algo sin terminar.

Un muy simple solución es escribir un comentario del tipo:

try {
    JSON.parse(texto);
} catch(err) {
    // Este código se ha dejado intencionadamente en blanco
}

Otra solución, que aplicamos algunos de los más viejos programadores en Javascript es utilizar void (0).

try {
    JSON.parse(texto);
} catch(err) {
    void(0);
}

La línea void(0) lo que hace es evaluar 0 y no devolver nada, lo cual es equivalente a no hacer nada.

Operador ternario

En ocasiones al utilizar el operador ternario, sobre todo uno dentro de otro, nos podemos encontrar que tenemos que poner algo en la última instrucción, pero no queremos hacer nada específico en ese caso. De nuevo podemos utilizar el void (0).

a < 10 ? x = 1 : a < 20 ? z = 2 : void(0);

Evidentemente este código podríamos haberlo estructurado de otra forma y, seguramente, sería más fácil de leer y evitaríamos el uso de void (0), pero desde luego es un codigo válido y compacto, lo cual puede ser de agradecer en algunos casos.

Enlace en HTML

Esta expresión void(0) se popularizó en HTML como un enlace de un ancla (A) que no queremos que se dirija a ningún sitio. La expresión se evalúa pero no se carga o se desplaza la página.

<a href"javascript:void(0)">
Haga click aquí para no hacer nada
</a> |
<a href"javascript:void(document.body.style.backgroundColor='green')">
Haga click aqui para cambiar el color de fondo
</a>

Como podemos ver en el segundo caso, también se puede utilizar para evitar el retorno de la llamada a una expresión Javascript dentro del enlace.

Invocación directa de una función

Se puede utilizar para invocación directa de una función:

void function() {
  //...
}();

La función se ejecutará directamente, ya que void evalua la expresion que tiene a su derecha y esta tiene () al final de la misma.

Evitar el retorno

También se puede utilizar void parar evitar devolver el valor retornado por una función, por ejemplo, en un arrow function:

const myFunc = () => void otherFunc();

Conclusión

El operador void tiene una funcionalidad relativamente reducida, pero es interesante conocerlo y aprovechar su comportamiento en aquellos casos donde lo necesitemos.

Novedades

Web Components: pasado, presente y futuro

Web Components: pasado, presente y futuro

Los Web Components aparecieron en el panorama de desarrollo hace ya bastante tiempo. Desde su presentación se les ha prestado mucha atención, pero lo cierto es que no han sido acogidos de forma generalizada, quizás por la difusión de nuevos y potentes frameworks. Nos preguntamos qué ha pasado con este estándar y, sobre todo, que puede pasar de aquí en adelante con el uso práctico de los componentes web.

Adaptar un componente web para Microsoft Edge

Adaptar un componente web para Microsoft Edge

Si quieres que tus componentes web funcionen sin problemas en Microsoft Edge, es conveniente que conozcas algunas de sus carencias y cómo resolverlas. Edge tiene soporte nativo a algunas de las características clave de los web component, pero hay que utilizar polyfill en otras y hay que tener en cuenta algunas limitaciones. Próximamente Edge utilizará Chromium como base de su desarrollo, pero de momento, es necesario aplicar estas soluciones.

12 pasos para construir un componente web

12 pasos para construir un componente web

Para conocer cómo se desarrolla realmente un componente web no puedes perderte esta descripción paso a paso de la construcción de un componente real y de cierta complejidad. Podrás descubrir cómo, sólo utilizando el estándar, se pueden hacer cosas muy interesantes y completas.

¿Qué pasa con import y los web components?

¿Qué pasa con import y los web components?

Uno de los más controvertidos pilares de los componentes web ha sido el HTML Import. Considerado en estos momentos como una funcionalidad discontinuada, debemos conocer como sacar el máximo partido la instrucción import de Javascipt para gestionar la carga de nuestros componentes.