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.

Relacionado:  Enviar formulario con AJAX y PHP

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

Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 390 suscriptores


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/

1 Comment

Const, var y let en JavaScript: diferencias y explicación - Parzibyte's blog · agosto 24, 2018 a las 10:18 am

[…] Let puede ser usado como remplazo de var y no tienes que preocuparte por nada si es que escribes buen código. Recomiendo leer por qué no necesitamos punto y coma ni var en JS […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: