¿Es JavaScript un lenguaje de tipo dinámico o de tipo estático?

JavaScript se escribe dinámicamente, eso significa que los tipos pueden cambiar en tiempo de ejecución.

Ejemplo rápido en JavaScript:

myvar = 1;
myvar = “Toyota”;
myvar = [“Saab”, “Volvo”, “BMW”];

Eso es JavaScript completamente legal, podemos establecer la variable “myvar” en un número, texto o una matriz, y JavaScript nos lo permitirá.

Java:

int myvar = 1;
myvar = “Toyota”;
myvar = [“Saab”, “Volvo”, “BMW”];

Sin embargo, en Java, eso nunca se compilará, porque la primera vez que declaramos “myvar” necesitamos indicar un tipo, en este caso es un int (un número entero). Eso significa que la configuración de algún texto fallará en el momento de la compilación, la configuración de myvar en cualquier cosa excepto un int fallará.

La idea de los tipos dinámicos es que hace que el código sea flexible, es decir, si tiene una función que devuelve un número, en realidad no tiene que devolver un número, puede devolver lo que quiera.

Con los tipos estáticos, se considera que aplicar reglas a los tipos que se pueden usar es un beneficio. La idea es que si tiene una función que acepta un int, no necesita verificar si se le ha pasado un int, ya que el compilador no permitirá que suceda nada más.

Es en esta parte de la respuesta donde debo decir que tanto los tipos dinámicos como los estáticos tienen sus ventajas y desventajas, pero nunca he conocido un lenguaje o programa que no pueda mejorarse con los tipos estáticos.

Básicamente, echa un vistazo a ese primer listado de códigos de 3 líneas. Puedes recordar qué es “myvar” ¿verdad? Intente escribir 100,000 líneas más y luego vea si puede recordar.

Ese es el beneficio de los tipos estáticos, no necesita recordarlo, el compilador verificará esas 100,000 líneas por usted en unos segundos.

More Interesting

¿Qué consejo le darías a alguien que intenta ser un desarrollador de aplicaciones desde cero?

¿Qué es post-ágil, cuando se refiere al desarrollo de software? Entiendo los conceptos básicos de ágil, pero ¿qué pasa con un lugar de trabajo describiéndose a sí mismos como post-ágil?

¿Cuál es el papel de esas bases de datos multimodelo relativamente nuevas como ArangoDB y OrientDB en todo este escenario de persistencia políglota, especialmente para el último crecimiento de las arquitecturas de microservicios?

Cómo hacer que un sitio web funcione rápido

¿Es posible hacer un programa de software para copiar / extraer, patrones precisos / medidos de un programa de software basado en la web que no le permite copiar fuera de ese programa?

Soy un ingeniero de software que trabaja principalmente en Java. ¿Qué puedo comenzar a hacer ahora que me ayudará en mi carrera a largo plazo?

¿Cuáles son algunos de los beneficios de los errores de software?

¿Por qué es esencial contar con los servicios de una empresa de pruebas de software?

¿Cómo pueden los empleados proteger sus derechos de autor para el software producido fuera del horario laboral?

¿Qué costos adicionales además del costo del software deben considerarse al seleccionar el software ERP?

¿Es normal tener miedo de una carrera en desarrollo de software a los 30 años?

Cómo aprovechar al máximo los esquemas no flexibles de MySQL

¿El certificado NIIT me ayuda a lograr mi sueño de convertirme en ingeniero o desarrollador de software?

¿Por qué los ingenieros de software se frustran?

¿Doodly es un buen software?