Suele describirse a JavaScript como un lenguaje de programación de «tipado débil y dinámico». Eso significa que, a la hora de declarar una variable, no definimos el tipo de dato que le corresponde (numérico, cadena de texto, booleano…), sino que se asigna automáticamente («123» será una cadena de texto, mientras que 123 será un dato numérico), y además siempre podemos cambiarlo más adelante.