En este capítulo hablaremos acerca de algunas características en particular, y empezar a ver la gramática del lenguaje, es decir, cuales son las reglas que tenemos que seguir, algunas son definidas, otras opcionales, pero digamos es como la ortografía de la programación.
Isomorfismo
Hoy en día, Javascript es el único lenguaje capaz de ejecutarse en las 3 capas de una aplicación:
- Frontend (Javascript)
- Backend (Node.js)
- Persistencia de datos (MongoDB, Couch DB, Firebase…)
Javascript nace en los navegadores, y a día de hoy es la única tecnología aceptada por los mismos para programar. Podemos usar por detrás metalenguajes y compiladores como CoffeScript, TypeScript… pero finalmente tienes que compilar este código a código nativo Javascript para que los navegadores lo interpreten.
Del lado del backend, desde el 2019, Node.js es el ambiente que permite programar del lado del servidor con Javascript, y finalmente, en los últimos años, con la gran popularidad que han tenido las bases de datos noSQL, particularmente las bases de datos basadas en documentos, como MongoDB, Firebase… la estructura de una base de datos documental es una notación de objetos Javascript, es decir, como un JSON en formato binario.
Qué se puede hacer con Javascript
Con Javascript puedes:
- Diseño y desarrollo web.
- Crear videojuegos.
- Experiencias 3D, Realidad aumentada, Realidad virtual…
- Controlar hardware (drones, robots, electrodomésticos…).
- Aplicaciones híbridas y móviles.
- Machine learning..
No sólo se puede hacer diseño y desarrollo web, por lo que podemos ver. Javascript tiene múltiples aplicaciones como podemos ver.
Características del lenguaje Javascript
Estas son algunas de las características más importantes:
- Es un lenguaje de alto nivel, lo que nos da ciertas abstracciones, no tenemos que preocuparnos de gestionar la memoria, la recolección de basura para mejorar el rendimiento de los recursos…
- Se trata de un lenguaje interpretado y dinámico, por lo que no necesita una fase de compilación y ejecución. Javascript se compila en modo de ejecución, lo que lo hace dinámico, y, aunque cada navegador tiene su motor que compila Javascript, se compila en tiempo de ejecución.
- Es débilmente tipado, lo que significa que cuando creamos una variable, dicha variable no se casa con ningún tipo de dato, es decir, una variable puede empezar por un valor que sea una cadena de texto, y posteriormente, por el flujo de la programación, dicha variable puede almacenar un valor numérico, o ser un objeto, una función… En lenguajes totalmente tipados, cuando declaramos una variable, le tenemos que especificar el tipo de dato.
- Es multi paradigma, es decir, podemos utilizar programación estructurada, programación orientada a objetos, programación funcional, nuestro código puede estar escrito en sentencias imperativas, sentencias declarativas…
- Sensible a MAYÚSCULAS y minúsculas. Si declaramos una variable llamada PERRO, será totalmente distinta a una variable llamada perro.
- No son necesarios los puntos y comas al final de cada línea.
Escritura de código
Los nombres de identificadores (nombres que damos a las variables, funciones, clases…) deben comenzar con:
- Una letra.
- Un signo de dólar ($).
- Un guión bajo (_).
- Nunca con números o caracteres especiales.
No se puede repetir el nombre del identificador
Técnicas para escribir código
Existen diferentes técnicas para escribir código. Veamos como utilizar las técnicas.
Usar snake_case en
- Archivos
La técnica de snake_case consiste en escribir los nombres de la siguiente manera.
Ejm
mi_archivo_javascript.js
Usar UPPER_CASE en
- Constantes
La ténica de UPPER_CASE consiste en escribir los nombres de la siguiente manera.
const UNA_CONSTANTE = 'Soy una constante', PI = 3,1416;
Usar UpperCamelCase en
- Clases
La técnica de UpperCamelCase consiste en escribir nuestros nombres de la siguiente manera.
Ejm
class SerHumano { }
Usar lowerCamelCase en
- Objetos
- Primitivos
- Funciones
- Instancias
La técnica lowerCamelCase consiste en escribir nuestros nombres de la siguiente manera.
Ejm
const unObjeto = {}; let unaCadena = 'Hola Mundo';
Si nuestra variable, objeto, función… tiene dos palabras, la primera de ellas se escribe en minúsculas, y las siguientes palabras, la primera letra de la misma se escribe en MAYÚSCULAS
Palabras reservadas
Estas son algunas palabras reservadas que no podemos utilizar, ya que están reservadas para el lenguaje de programación en sí. No las podemos utilizar porque ya los lenguajes de programación las utilizan para ciertas funcionalidades.
- A: abstract
- B: boolean, break, byte
- C: case, catch, char, class, const, continue
- D: debugger, default, delete, do, double
- E: else, enum, export, extends
- F: false, final, finally, float, for, function
- G: goto
- I: if, implements, import, in, instanceof, int, interface
- L: left, long
- N: native, new, null
- P: package, private, protected, public
- R: return
- S: short, static, super, switch, synchronized
- T: this, throw, throws, transient, true, try, typeof
- V: var, volatile, void
- W: while, with
Ordenamiento de código
Se trata de una recomendación. En la medida de lo posible, el ordenamiento de código de la siguiente manera nos permite tener una muy buena estructura, darnos disciplina en saber donde está cada cosa.
- Importación de módulos: mandar llamar a archivos Javascript dentro de otros.
- Declaración de variables
- Declaración de funciones
- Ejecución de código
Tipos de datos Javascript
Javascript presenta principalmente dos tipos de datos, los datos primitivos son aquellos a los que se accede directamente al valor, y los datos compuestos, en los cuales a lo que se accede es a la referencia del valor.
- Primitivos: se accede directamente al valor
- string
- number
- boolean
- null
- undefined
- NaN
- Compuestos o complejos: se accede a la referencia del valor
- object = {}
- array = []
- function = (){}
- class = {}