JavaScript

JavaScript

¿Qué es?

¿ Que es JavaScript ?

Es un lenguaje de programacion dinamico que tiene la capacidad de ser utilizado en distintos dispositivos. Es interpretado, orientado a objetos, debilmente tipado y dinamico. ¿Que significa todo esto?

Lenguajes interpretados

Tanto compiladores como interpretadores son programas que convierten el código que escribes a lenguaje de máquina.

image.png

Basicamente el lenguaje interpretado va convirtiendo el codigo a lenguaje de maquina a medida que se ejecuta el programa, en cambio un lenguaje compilado primero se convierte a lenguaje de maquina en una etapa llamada compilacion y luego se ejecuta.

Orientado a objetos

La programación orientada a objetos (Object Oriented Programming, OOP) es un modelo de programación informática que organiza el diseño de software en torno a datos u objetos, en lugar de funciones y lógica. Un objeto se puede definir como un campo de datos que tiene atributos y comportamiento únicos.

Principios de la programacion orientada a objetos

  • Encapsulación. La implementación y el estado de cada objeto se mantienen de forma privada dentro de un límite definido o clase. Otros objetos no tienen acceso a esta clase o la autoridad para realizar cambios, pero pueden llamar a una lista de funciones o métodos públicos. Esta característica de ocultación de datos proporciona una mayor seguridad al programa y evita la corrupción de datos no intencionada.

  • Abstracción. Los objetos solo revelan mecanismos internos que son relevantes para el uso de otros objetos, ocultando cualquier código de implementación innecesario. Este concepto ayuda a los desarrolladores a realizar cambios y adiciones más fácilmente a lo largo del tiempo.

  • Herencia. Se pueden asignar relaciones y subclases entre objetos, lo que permite a los desarrolladores reutilizar una lógica común sin dejar de mantener una jerarquía única. Esta propiedad de OOP obliga a un análisis de datos más completo, reduce el tiempo de desarrollo y asegura un mayor nivel de precisión.

  • Polimorfismo. Los objetos pueden adoptar más de una forma según el contexto. El programa determinará qué significado o uso es necesario para cada ejecución de ese objeto, reduciendo la necesidad de duplicar código.

En el caso de JavaScript es un lenguaje basado en prototipos y no en clases, por lo cual todo es un poco diferente.

"Un lenguaje basado en prototipos toma el concepto de objeto prototípico, un objeto que se utiliza como una plantilla a partir de la cual se obtiene el conjunto inicial de propiedades de un nuevo objeto." fuente: Lenguajes basados en clases vs. basados en prototipos

Para conocer mas sobre la programacion basada en prototipos en JavaScript: JavaScript: POO — Programación basada en prototipos

Debilmente tipado

Cuando nos referimos a tipado estamos hablando de como definimos los tipos de variables. En el tipado debil no se le indica a la variable que tipo de dato estamos ingresando, esto nos permite realizar operaciones entre distintos tipos de datos, por ejemplo:

const resultado = 10 + "Diego"; // "10Diego"

Dinamico

Corre directamente en la etapa de Runtime, sin una etapa de compilación previa. Esto permite probar nuestro código inmediatamente; pero también es lo que hace que los errores no se muestren sino hasta que se ejecuta el programa. Lo que se ve a primera vista, cuando se analiza el código, es muy probable que no sea lo que se va a obtener cuando el programa se ejecute.

JavaScript permite declarar (por ejemplo) variables cuyo valor (y tipo) solo se conocerá al momento de su ejecución en función de las condiciones dadas al momento de correrlo en un entorno real. Por ejemplo, en JavaScript es posible cambiar el tipo de una variable o agregar nuevas propiedades o métodos a un objeto mientras el programa está en ejecución. En cambio, los lenguajes estáticos no compilarán en código ejecutable a menos que todos los valores (o tipos de valores) se conozcan por adelantado.