{"id":625,"date":"2024-07-30T19:33:21","date_gmt":"2024-07-30T17:33:21","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=625"},"modified":"2025-12-16T16:57:50","modified_gmt":"2025-12-16T15:57:50","slug":"02-caracteristicas-y-gramatica-en-javascript","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/javascript\/javascript-practico\/02-caracteristicas-y-gramatica-en-javascript\/","title":{"rendered":"02. Caracter\u00edsticas y gram\u00e1tica en Javascript"},"content":{"rendered":"\n<p>En este cap\u00edtulo hablaremos acerca de algunas caracter\u00edsticas en particular, y empezar a ver la <strong>gram\u00e1tica del lenguaje<\/strong>, es decir, cuales son las reglas que tenemos que seguir, algunas son definidas, otras opcionales, pero digamos es como la <strong>ortograf\u00eda<\/strong> de la <strong>programaci\u00f3n<\/strong>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Isomorfismo<\/h2>\n\n\n\n<p>Hoy en d\u00eda, <strong>Javascript<\/strong> es el \u00fanico lenguaje capaz de ejecutarse en las 3 capas de una aplicaci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Frontend (<a href=\"https:\/\/developer.mozilla.org\/es\/docs\/Web\/JavaScript\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Javascript<\/strong><\/a>)<\/li>\n\n\n\n<li>Backend (<a href=\"https:\/\/nodejs.org\/es\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Node.js<\/strong><\/a>)<\/li>\n\n\n\n<li>Persistencia de datos (<a href=\"https:\/\/www.mongodb.com\/cloud\/atlas\/lp\/try4?utm_source=google&amp;utm_campaign=search_gs_pl_evergreen_atlas_general_prosp-brand_gic-null_emea-es_ps-all_desktop_eng_lead&amp;utm_term=mongdb&amp;utm_medium=cpc_paid_search&amp;utm_ad=e&amp;utm_ad_campaign_id=1718986525&amp;adgroup=150907562394&amp;cq_cmp=1718986525&amp;gad=1&amp;gclid=CjwKCAjwqZSlBhBwEiwAfoZUIM-URmpWwcMaroYb4AbZOEkHbGF7TJ80DzfINvKdsNE0QpWjf0jq4RoCus4QAvD_BwE\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>MongoDB<\/strong><\/a>, <a href=\"https:\/\/docs.couchdb.org\/en\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Couch DB<\/strong><\/a>, <a href=\"https:\/\/firebase.google.com\/?hl=es\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Firebase<\/strong><\/a>&#8230;)<\/li>\n<\/ul>\n\n\n\n<p><strong>Javascript<\/strong> nace en los <strong>navegadores<\/strong>, y a d\u00eda de hoy es la \u00fanica tecnolog\u00eda aceptada por los mismos para programar. Podemos usar por detr\u00e1s <strong>metalenguajes<\/strong> y compiladores como <a href=\"https:\/\/coffeescript.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>CoffeScript<\/strong><\/a>, <a href=\"https:\/\/www.typescriptlang.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>TypeScript<\/strong><\/a>&#8230; pero finalmente tienes que compilar este c\u00f3digo a c\u00f3digo nativo <strong>Javascript<\/strong> para que los <strong>navegadores<\/strong> lo interpreten.<\/p>\n\n\n\n<p>Del lado del <strong>backend<\/strong>, desde el 2019, <strong>Node.js<\/strong> es el ambiente que permite programar del lado del servidor con <strong>Javascript<\/strong>, y finalmente, en los \u00faltimos a\u00f1os, con la gran popularidad que han tenido las bases de datos <strong>NoSQL<\/strong>, particularmente las <strong>bases de datos basadas en documentos<\/strong>, como <strong>MongoDB<\/strong>, <strong>Firebase<\/strong>&#8230; la estructura de una <strong>base de datos documental<\/strong> es una notaci\u00f3n de objetos <strong>Javascript<\/strong>, es decir, como un <strong>JSON<\/strong> en formato binario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 se puede hacer con Javascript<\/h2>\n\n\n\n<p>Con Javascript puedes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dise\u00f1o y desarrollo web.<\/li>\n\n\n\n<li>Crear videojuegos.<\/li>\n\n\n\n<li>Experiencias 3D, Realidad aumentada, Realidad virtual&#8230;<\/li>\n\n\n\n<li>Controlar hardware (drones, robots, electrodom\u00e9sticos&#8230;).<\/li>\n\n\n\n<li>Aplicaciones h\u00edbridas y m\u00f3viles.<\/li>\n\n\n\n<li>Machine learning..<\/li>\n<\/ul>\n\n\n\n<p>No s\u00f3lo se puede hacer dise\u00f1o y desarrollo web, por lo que podemos ver. <strong>Javascript<\/strong> tiene m\u00faltiples aplicaciones como podemos ver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Caracter\u00edsticas del lenguaje Javascript<\/h2>\n\n\n\n<p>Estas son algunas de las caracter\u00edsticas m\u00e1s importantes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Es un <strong>lenguaje de alto nivel<\/strong>, lo que nos da ciertas abstracciones, no tenemos que preocuparnos de gestionar la <strong>memoria<\/strong>, la <strong>recolecci\u00f3n de basura<\/strong> para mejorar el rendimiento de los recursos&#8230;<\/li>\n\n\n\n<li>Se trata de un <strong>lenguaje interpretado<\/strong> y <strong>din\u00e1mico<\/strong>, por lo que no necesita una fase de <strong>compilaci\u00f3n<\/strong> y <strong>ejecuci\u00f3n<\/strong>. <strong>Javascript<\/strong> se compila en modo de ejecuci\u00f3n, lo que lo hace din\u00e1mico, y, aunque cada navegador tiene su motor que compila <strong>Javascript<\/strong>, se compila en tiempo de ejecuci\u00f3n.<\/li>\n\n\n\n<li>Es <strong>d\u00e9bilmente tipado<\/strong>, lo que significa que cuando creamos una <strong>variable<\/strong>, dicha <strong>variable<\/strong> no se casa con ning\u00fan tipo de dato, es decir, una <strong>variable<\/strong> puede empezar por un valor que sea una cadena de texto, y posteriormente, por el flujo de la programaci\u00f3n, dicha <strong>variable<\/strong> puede almacenar un valor num\u00e9rico, o ser un <strong>objeto<\/strong>, una <strong>funci\u00f3n<\/strong>&#8230; En lenguajes totalmente tipados, cuando declaramos una <strong>variable<\/strong>, le tenemos que especificar el tipo de dato.<\/li>\n\n\n\n<li>Es <strong>multi paradigma<\/strong>, es decir, podemos utilizar <strong>programaci\u00f3n estructurada<\/strong>, <strong>programaci\u00f3n orientada a objetos<\/strong>, <strong>programaci\u00f3n funcional<\/strong>, nuestro c\u00f3digo puede&nbsp; estar escrito en <strong>sentencias imperativas<\/strong>, <strong>sentencias declarativas<\/strong>&#8230;<\/li>\n\n\n\n<li>Sensible a MAY\u00daSCULAS y min\u00fasculas. Si declaramos una variable llamada PERRO, ser\u00e1 totalmente distinta a una variable llamada perro.<\/li>\n\n\n\n<li>No son necesarios los puntos y comas al final de cada l\u00ednea.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Escritura de c\u00f3digo<\/h2>\n\n\n\n<p>Los nombres de <strong>identificadores<\/strong> (nombres que damos a las <strong>variables<\/strong>, <strong>funciones<\/strong>, <strong>clases<\/strong>&#8230;) deben comenzar con:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Una letra.<\/li>\n\n\n\n<li>Un signo de d\u00f3lar ($).<\/li>\n\n\n\n<li>Un gui\u00f3n bajo (_).<\/li>\n\n\n\n<li>Nunca con n\u00fameros o caracteres especiales.<\/li>\n<\/ul>\n\n\n\n<p>No se puede repetir el nombre del identificador<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00e9cnicas para escribir c\u00f3digo<\/h2>\n\n\n\n<p>Existen diferentes t\u00e9cnicas para escribir c\u00f3digo. Veamos como utilizar las t\u00e9cnicas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Usar snake_case en<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Archivos<\/li>\n<\/ul>\n\n\n\n<p>La t\u00e9cnica de <strong>snake_case<\/strong> consiste en escribir los nombres de la siguiente manera.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mi_archivo_javascript.js<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Usar UPPER_CASE en<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Constantes<\/li>\n<\/ul>\n\n\n\n<p>La t\u00e9nica de <strong>UPPER_CASE<\/strong> consiste en escribir los nombres de la siguiente manera.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">const UNA_CONSTANTE = 'Soy una constante',\nPI = 3,1416;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Usar UpperCamelCase en<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clases<\/li>\n<\/ul>\n\n\n\n<p>La t\u00e9cnica de <strong>UpperCamelCase<\/strong> consiste en escribir nuestros nombres de la siguiente manera.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">class SerHumano {\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Usar lowerCamelCase en<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objetos<\/li>\n\n\n\n<li>Primitivos<\/li>\n\n\n\n<li>Funciones<\/li>\n\n\n\n<li>Instancias<\/li>\n<\/ul>\n\n\n\n<p>La t\u00e9cnica <strong>lowerCamelCase<\/strong> consiste en escribir nuestros nombres de la siguiente manera.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">const unObjeto = {};\nlet unaCadena = 'Hola Mundo';<\/pre>\n\n\n\n<p>Si nuestra <strong>variable<\/strong>, <strong>objeto<\/strong>, <strong>funci\u00f3n<\/strong>&#8230; tiene dos palabras, la primera de ellas se escribe en min\u00fasculas, y las siguientes palabras, la primera letra de la misma se escribe en MAY\u00daSCULAS<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Palabras reservadas<\/h2>\n\n\n\n<p>Estas son algunas <strong>palabras reservadas<\/strong> que no podemos utilizar, ya que est\u00e1n reservadas para el lenguaje de programaci\u00f3n en s\u00ed. No las podemos utilizar porque ya los <strong>lenguajes de programaci\u00f3n<\/strong> las utilizan para ciertas funcionalidades.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A<\/strong>: abstract<\/li>\n\n\n\n<li><strong>B<\/strong>: boolean, break, byte<\/li>\n\n\n\n<li><strong>C<\/strong>: case, catch, char, class, const, continue<\/li>\n\n\n\n<li><strong>D<\/strong>: debugger, default, delete, do, double<\/li>\n\n\n\n<li><strong>E<\/strong>: else, enum, export, extends<\/li>\n\n\n\n<li><strong>F<\/strong>: false, final, finally, float, for, function<\/li>\n\n\n\n<li><strong>G<\/strong>: goto<\/li>\n\n\n\n<li><strong>I<\/strong>: if, implements, import, in, instanceof, int, interface<\/li>\n\n\n\n<li><strong>L<\/strong>: left, long<\/li>\n\n\n\n<li><strong>N<\/strong>: native, new, null<\/li>\n\n\n\n<li><strong>P<\/strong>: package, private, protected, public<\/li>\n\n\n\n<li><strong>R<\/strong>: return<\/li>\n\n\n\n<li><strong>S<\/strong>: short, static, super, switch, synchronized<\/li>\n\n\n\n<li><strong>T<\/strong>: this, throw, throws, transient, true, try, typeof<\/li>\n\n\n\n<li><strong>V<\/strong>: var, volatile, void<\/li>\n\n\n\n<li><strong>W<\/strong>: while, with<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ordenamiento de c\u00f3digo<\/h2>\n\n\n\n<p>Se trata de una recomendaci\u00f3n. En la medida de lo posible, el <strong>ordenamiento de c\u00f3digo<\/strong> de la siguiente manera nos permite tener una muy buena estructura, darnos disciplina en saber donde est\u00e1 cada cosa.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Importaci\u00f3n de m\u00f3dulos: mandar llamar a archivos <strong>Javascript<\/strong> dentro de otros.<\/li>\n\n\n\n<li>Declaraci\u00f3n de variables<\/li>\n\n\n\n<li>Declaraci\u00f3n de funciones<\/li>\n\n\n\n<li>Ejecuci\u00f3n de c\u00f3digo<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de datos Javascript<\/h2>\n\n\n\n<p><strong>Javascript<\/strong> presenta principalmente dos <strong>tipos de datos<\/strong>, los <strong>datos primitivos<\/strong> son aquellos a los que se accede directamente al valor, y los <strong>datos compuestos<\/strong>, en los cuales a lo que se accede es a la referencia del valor.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Primitivos<\/strong>: se accede directamente al valor\n<ul class=\"wp-block-list\">\n<li>string<\/li>\n\n\n\n<li>number<\/li>\n\n\n\n<li>boolean<\/li>\n\n\n\n<li>null<\/li>\n\n\n\n<li>undefined<\/li>\n\n\n\n<li>NaN<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Compuestos<\/strong> o <strong>complejos<\/strong>: se accede a la referencia del valor\n<ul class=\"wp-block-list\">\n<li>object = {}<\/li>\n\n\n\n<li>array = []<\/li>\n\n\n\n<li>function = (){}<\/li>\n\n\n\n<li>class = {}<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>En este cap\u00edtulo hablaremos acerca de algunas caracter\u00edsticas en particular, y empezar a ver la gram\u00e1tica del lenguaje, es decir, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":620,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-625","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En este cap\u00edtulo hablaremos acerca de algunas caracter\u00edsticas en particular, y empezar a ver la gram\u00e1tica del lenguaje, es decir, [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=625"}],"version-history":[{"count":3,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/625\/revisions"}],"predecessor-version":[{"id":5191,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/625\/revisions\/5191"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/620"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}