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:
Cada una de estas cosas tiene su explicación. Y deberíamos omitir siempre ambas.
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.
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í:
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.
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
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
En este post te enseñaré a imprimir la letra ñ en una impresora térmica. Voy…
Esta web usa cookies.
Ver comentarios