Errores típicos en JavaScript

Hay una serie de errores típicos en JavaScript (y en otros lenguajes) que ocurren, a mi juicio, más por despiste que por desconocimiento, pero que pueden tenernos un tiempo buscando el error sin encontrarlo por que ni tan siquiera podemos considerarlo.

Vamos a analizarlos…

Equivocar el operador de comparación

Ya no solo por que se cambie el tipo de una variable, también debido a que en muchas ocasiones escribimos = en lugar  ==, lo cual nos da resultados erróneos.

Y por supuesto cuando utilizamos  === y el tipo de variable no coincide.

var x = 0;
if (x = 10)

var x = 10;
var y = "10";
if (x === y)

Confundir adición y concatenación

Adición se refiere a sumar números

Concatenación se refiere a concatenar cadenas

Este error se puede dar debido a que en JavaScript se utiliza el mismo operador para las dos acciones (+)

Por lo que hay que tener en cuenta siempre el tipo de operación que queremos realizar y como realizara, como vemos en el siguiente ejemplo:

var x = 10;
var y = 5;
var z = x + y;  // el resultado es 15

var x = 10;
var y = "5";
var z = x + y;  // el resultado es "105"

Error al hacer operaciones con comas

Es bastante común que, junto con JavaScript, muchos lenguajes de programación cometan errores al utilizar operaciones con comas, lo cual puede ser un autentico quebradero de cabeza para las aplicaciones, por ello debemos de utilizar multiplos de diez para multiplicar y dividir por ellos nuestros valores y eliminar el error.

var x = 0.1;
var y = 0.2;
x = x * 10;
y = y *10;
var z = x + y;
z = z / 10;

En este ejemplo el resultado es 0.3, pero si no hubieramos multiplicado y dividido entre 10 el reusltado hubiera sido algo parecido a 0.30000000000000004

Ruptura de cadenas

Otro de los errores típicos en JavaScript es romper las cadenas entre líneas del siguiente modo:

document.getElementById("demo").innerHTML ="Hola 
Mundo!";

 De este modo no obtendremos ningún resultado, de modo que tenemos varias opciones:

  • Cortar la cadena en diferentes trozos concatenandola
  • Terminar cada línea que se interrumpa con el valor \ para que JavaScript siga ejecutando todo como una cadena
document.getElementById("demo").innerHTML = "Hola \
Mundo!";

Los ;

Hay que tener cuidado con poner ; de más ya que como en el siguiente ejemplo pueden romper el flujo del código:

if (x == 19);
{
    //código
}

Usar matrices asociativas

Algunos lenguajes como PHP son capaces de utilizar matrices asociativas (par nombre – valor), aunque por desgracia JavaScript no es capaz de leer este tipo de matrices, razón por la cual muchas veces podemos intentar hacer que JS tenga un comportamiento que le es imposible, ya que solo utiliza índices numéricos para acceder a los valores.

Terminar una definición de matriz o de un objeto  con una coma

Otro error típico es terminar la declaración de un array con una coma como en el siguiente caso:

puntos = [40, 100, 1, 5, 25, 10,];

 En los objetos pasa lo mismo que en las matrices, nunca deben de terminar con una coma:

persona = {nombre:"Juana", apellido:"Calamidad", edad:34,}

Indefinido NO es nulo

En JS, nulo es para objetos, e indefinido es para las variables, propiedades y métodos.

Para ser nulo, un objeto tiene que estar definido, de lo contrario será indefinido.