Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

Flexibilidad en JavaScript con respecto a la id de variables

En uno de los videos pude visualizar que el profe colocaba datos sin declararlos como variables ( var) y de igual manera al ejecutar el programa los asumía como variables sin dar error , lo consulte con compañeros y lo investigue y parece que JavaScript cuenta con cierta flexibilidad en algunos aspectos.

Si alguien mas lo noto y tiene información al respecto me agradaría leerle .

3 respuestas

Si es verdad en Javascript no es obligatorio declarar las variables y es flexible por eso y muchos mas aspectos del lenguaje, el programa puede ejecutarse sin ningún un error, sin embargo en proyectos mas grandes la ejecución puede producir efectos no deseados en los resultados o cálculos del mismo, es por tal motivo y por otros que nació Typescript, creado por Anders Hejlsberg, el mismo diseñador de C# que es mas estricto en esos aspectos además añadiendo tipos estáticos y objetos basados en clases.

Saludos.

Es asi Damelis, Javascript es un lenguaje que nació directamente en la web, y como tal no puede romper funcionalidades que romperían websites antiguos o sin mantenimiento. Pero esa flexibilidad no quiere decir que de lo mismo. Si miras guías de estilo de Javascript de grandes empresas verás como denominador común que prefieren utilizar sobre todo const para definir variables, let solo si debe reasignarse y nunca var. Porque var tiene un comportamiento que conduce a errores difíciles de depurar en algunos casos.

Ahora, respecto a la declaración implícita de variables (solo con su nombre, sin usar const, let ni var): esto se considera en todo ámbito industrial una mala práctica. Sucede que cuando haces eso, no estás declarando variables propiamente tales, sino más bien "propiedades" del objeto global, que en el browser se llama window. Intenta esto en la 'consola' del navegador:

let a = 12;     // no asociado al objeto global
b = 12;          // asociado al objeto global

window.a     // undefined
window.b     // 12

Ahora, el punto es. Bueno ¿y eso que importancia tiene? El punto acá es que el objeto global tiene una gran cantidad de propiedades, y es posible que sin querer tu código, al intentar ser semántico declare variables como Math ,close, find u otros que parecen tener mucho sentido pero que entonces sobre escribirán metodos o propiedades del objeto global que representa tu browser, un ejemplo que puedes probar en la consola de desarrollo:

alert = function(mensaje) {     // esto es igual que declarar window.alert 
    console.log(mensaje);
}

alert('me han hackeado el browser');

como verás, 'sin querer' hemos sobreescrito una funcionalidad que está presente en el objeto global (window = la ventana del browser) y ya alert no funciona como queremos. Por eso, siempre declara tus variables.

Gracias por la informacion, aprendi algo nuevo.