Uso de null y undefined en JavaScript

Los valores null y undefined suelen dar muchos dolores de cabeza a los programadores. En el artículo Handling null and undefined in JavaScript se explica cómo se deben usar en JavaScript:

One aspect of JavaScript development that many developers struggle with is dealing with optional values. What are the best strategies to minimize errors caused by values that could be null, undefined, or otherwise uninitialized at runtime?

Some languages have built-in affordances for those circumstances. In some statically typed languages, you can say that null and undefined are illegal values, and let your programming language throw a TypeError at compile time, but even in those languages, that can’t prevent null inputs from flowing into the program at runtime.

To get a better handle on this problem, we need to understand where these values can come from. Here are some of the most common sources:

  • User input

  • Database/network records

  • Uninitialized state

  • Functions which could return nothing

Un error le costó a la NASA 150 millones de dólares

Es una historia antigua, se produjo en 1962, pero es muy interesante: Cómo un solo error de código le costó a la NASA 150 millones de dólares: el desastre de la Mariner 1. Un resumen de la historia es:

Enviar un vehículo al espacio por el procedimiento de sujetarlo a un proyectil descomunal impulsado por explosiones controladas no es precisamente tarea fácil. Un solo error a menudo es la diferencia entre el éxito y el desastre total. Para la sonda Mariner 1, ese error fue el símbolo “¯”.

[…]

¿Qué ocurrió con el cohete Atlas Agena que llevaba la Mariner? El escritor de ciencia ficción Arthur C. Clarke lo definió como el guión más caro de la historia, pero en realidad no era un guión, sino un guión alto o superguión. El programador que transcribió el código que regía uno de los sistemas de navegación se comió este símbolo.