javascript

¿Por qué en Javascript no necesitamos punto y coma ni var?

Introducción

Independientemente de qué tanto sepamos Javascript, en algún momento alguien nos dijo o descubrimos que en Javascript podemos hacer dos cosas un poco raras:

  • Declarar variables sin la palabra reservada var
  • No poner punto y coma al final de cada sentencia

Cada una de estas cosas tiene su explicación. Y deberíamos omitir siempre ambas.

Declarar variables sin var

Comenzamos con declarar variables sin var. Pues bien, recordemos que para declarar una variable normal usamos lo siguiente:

var edad = 10;
var nombre = "John";

Pero claro que podemos hacer esto:

edad = 10;
nombre = "John";

¿Qué está pasando ahí?

Cuando no usamos var, la variable pasa a ser global automáticamente. Hacer esto:

function hola(){
  saludo = "Mundo";
}

Es equivalente a hacer esto:

var saludo = "Hola"; //Es global
function hola(){

}

Puede que no parezca nada malo; pero cuando estamos en proyectos grandes, una variable global puede traernos graves problemas, porque puede que tengamos resultados inesperados leyendo una variable que creemos local cuando en realidad no lo es. O podemos asignarla y otro programador obtendrá valores equivocados.

Para solucionar esto y educarnos a nosotros mismos (y a nuestros compañeros) podemos usar el modo estricto poniendo “use strict”; al inicio de nuestros scripts.

"use strict";
function hola(){
  saludo = "Mundo"; // Error 
}

Así que asignar variables sin var no es un tipo de magia, sino más bien una muy mala práctica que debemos omitir al menos que sepamos lo que estamos haciendo.

No usar punto y coma ;

Por otro lado tenemos a aquellos que dicen que no es necesario el ; al terminar una sentencia. Esto tampoco es magia. Cuando no ponemos punto y coma, el intérprete separa las sentencias con saltos de línea.

Con punto y coma, yo puedo hacer esto:

var edad = 19; console.log("Tu edad es ", edad);

Sin punto y coma…

var edad = 19 console.log("Tu edad es ", edad)

Oh, sorpresa. ¿No decían que se puede hacer sin ;?

Veamos ahora otra cosa que me encontré un día en codewars. Esta función:

function obtenerMascota(){
  return
  {
    nombre: "Maggie"
  }
}

Lo que esperamos al llamar esta función es un objeto que tiene la propiedad nombre. Vamos a probar…

Podemos ver que al llamar a obtenerMascota nos da undefined. La razón de esto es que estamos separando por un salto de línea el return y la llave de inicio del objeto.

La función correcta debería quedar así:

En este caso ponemos la llave junto con return. Ya que anteriormente el intérprete tomaba a return como una sentencia aparte del objeto.

Por eso es importante terminar nuestras sentencias con punto y coma, y poner la llave de inicio en la misma línea cuando estamos regresando un objeto.

Conclusión

Con esto terminamos por hoy. Tal vez al inicio nos moleste un poco usar el modo estricto pero es una forma de mejorar. Dejo algunas referencias:

https://www.w3schools.com/js/js_variables.asp

https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/var

https://stackoverflow.com/questions/1470488/what-is-the-purpose-of-the-var-keyword-and-when-to-use-it-or-omit-it

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

8 horas hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

6 días hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Imprimir ñ en impresora térmica

En este post te enseñaré a imprimir la letra ñ en una impresora térmica. Voy…

4 semanas hace

Esta web usa cookies.