El siguiente articulo hace parte de un grupo de publicaciones que realice en un servidor de Discord.
Fecha original de publicacion: 2024-09-27
— Anterior: Ámbito o alcance de una variable (Scope) (Parte 2 de 3)
Ámbito o alcance de una variable (Scope) (Parte 3 de 3)
Ejemplos
Detalles en JavaScript
Por ejemplo, en javascript, declarar una variable con let dentro del bloque de una condicional morirá ahí, pero al utilizar var esa variable seguirá viviendo fuera del bloque de la condicional.
javascript
if (true) {
let nombre = "pepe"
console.log(nombre) // imprime pepe
}
console.log(nombre) // error la variable nombre no esta definida
javascript
if (true) {
var edad = 15
console.log(edad) // imprime 15
}
console.log(edad) // imprime 15
Ejemplo shadowing en Python
Aquí se oculta variableA de funcionA en funcionB por declarar una variable con el mismo nombre
Mientras que en funcionG no ocurre ocultamiento en ninguno de los bloques padre o abuelo, por lo que accede a variableA de funcionA
python 3
def funcionA():
def funcionB():
def funcionC():
print(variableA) # Imprime 6, la variable mas cercana
variableA = 6 # oculta variableA definida en funcionA
print(variableA) # Imprime 6
funcionC() # ver en la funcion
def funcionD():
def funcionE():
def funcionG():
print(variableA) # Imprime hola, porque no hay ocultamiente de variableA
funcionG()
funcionE()
variableA = "hola"
print(variableA) # Imprime hola
funcionB() # ver en la funcion
print(variableA) # Imprime hola
funcionD() # ver en la funcion
funcionA()
Palabras finales
La principal ventaja de variables globales y locales de orden superior es poder acceder a su información sin necesidad de estar pasando listados de argumentos a funciones, como toca en PSeINT, el problema viene cuando se basa mucho en este modelo.
La complejidad de mantener el código aumenta con el número de usos de estas variables, las veces que se cambia su valor y que tan lejos estas de su bloque de origen. Además, aumenta el acoplamiento.
Usemos el 🧵
— Inicio del hilo
Si quieren mas detalles para Javascript, este este articulo The Difference of “var” vs “let” vs “const” in Javascript # let
— Fin del hilo
