Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
September 18, 2021 04:38 am GMT

JavaScript: Variables, tipos de dato, scope y el hoisting.

Hola de nuevo! :3

Algunas de las cosas bsicas que tenemos que entender a la hora de querernos meter a aprender JavaScript son: variables, tipos de datos, scope y el Hoisting. En realidad, siempre estaremos o casi siempre estaremos en interaccin con datos, ya sea que vengan del lado de nuestros servicios o datos con lo que tenemos que nos va a brindar el usuario. As que como no podemos escapar de ellos, tenemos que aprender a manejarlos.

Tipo de datos

Los tipos de datos son importantes en cualquier lenguaje de programacin. En el caso de JS, tenemos dos clases de datos: los primitivos y los de tipo objeto. Dentro de los primitivos podemos encontrar diferentes tipos de datos:

  • Booleano (Boolean): Pueden representar dos valores lgicos: verdadero (true) y falso (false).
  • Null: Representa un valor nulo.
  • Undefined: Representa una variable que no ha sido asignada por un valor.
  • Nmero (Number): Como su nombre lo indica, podemos representar cualquier nmero.
  • BigInt: En JS tenemos dos tipos de nmeros, el BigInt representa un valor exacto como los exponentes, algo as como: 2n ** 53n.
  • Cadena de texto (String): Representa datos textuales, por ejemplo: "Hola olla".

Variables

Se pueden definir de dos maneras: 1) una variable es un espacio almacenado en la memoria, 2) una variable es un contenedor para algn dato o valor. En JS tenemos tres formas de declarar estos valores:

  • var
  • let
  • const

var

Antes de EcmaScript 6 tenamos una manera de declarar nuestras variables y era con la palabra reservada "var". Pero eso nos daba un par de problemas; el primero era que podamos
duplicar las declaraciones y podramos reasignar los valores. Suena a que no es un problema, pero si no tenamos el cuidado suficiente al trabajar nuestras variables, stas podran cambiar sin darnos cuenta. Ya que "var" nos permite la reasignacin y la redeclaracin.

//varvar sayHello = "Hola olla"console.log(sayHello) // "Hola olla"var sayHello= "Hi!"console.log(sayHello) // "Hi"

let

Con la llegada de ES6, el problema de reasignacin de variables con var, termina. Especialmente cuando usamos la palabra reservada let dentro de las llaves { }. As que adems de darnos una keyword nueva, nos introduce a un nuevo scope; llamado: Block scope o alcance de bloque.

//let let sayHello = "Hola olla"console.log(sayHello) // "Hola olla"sayHello = "Hi!"console.log(sayHello) // "Hi"let sayHello= "Hi!"console.log(sayHello) // error: Identifier 'sayHello' has already been declared

const

La palabra reservada "const" nos ayuda a guardar valores que nunca tendrn que reasignarse.

// constconst sayHello = "Hola olla"console.log(sayHello) // "Hola olla"sayHello = "Hi!" // error: Assignment to constant variable. const sayHello= "Hi!" // error: Identifier 'sayHello' has already been declared

Scope

Ya llega la hora de hablar del scope. Entender el scope nos ayudar mucho a la hora no solo de declarar nuestras variables, sino a entender muchas cosas a la hora de programar y pensar cmo solucionar nuestros problemas tcnicos. El scope determina el alcance de nuestras variables. Con JS tenemos tres tipos de scope: 1) global, 2) scope de funcin y 3) scope de bloque. Aunque en realidad podramos agregar otros dos: local y de mdulo.

  • Alcance global: Cuando declaramos variables fuera de cualquier funcin, automticamente se convierte en una variable de alcance global.

  • Alcance de funcin: Cada vez que creamos funciones, se crea automticamente un nuevo scope dentro de la nueva funcin. Eso significa que cada vez que declaramos variables dentro de una funcin, esa variable tendr alcance o visibilidad dentro de esa funcin y no se podr acceder a ella fuera de la funcin.

  • Alcance de bloque: el alcance de bloque llega a JS en 2015 con ES6, cuando se introducen let y const. Esto significa que cualquier variable declarada dentro de las llaves { } slo pueden ser visibles dentro de ellas.

  • Alcance de Mdulo: Cuando creamos un nuevo mdulo, todas las variables que estn dentro del archivo aunque se encuentren fuera de funciones o llaves, en teora podran ser consideradas como variables globales; sin embargo, esas variables slo tienen alcance a nivel de mdulo, excepto cuando importamos explcitamente el mdulo en otro archivo.

Hoisting

A veces JS hace cosas raras. Creo que el Hoisting es una de esas y si no lo entendemos podemos cometer algunos errores o bueno, tener algunos bugs algo raros. El Hoisting es un comportamiento que JS tiene por defecto y lo que hace es elevar todas las declaraciones. Cuando digo "elevar", me refiero a que coloca todas las declaraciones al inicio de su scope. Ese elevamiento no es literal, justo pasa cuando JS est en el proceso de compilacin cuando JS hace un chequeo de todas las variables que requieren de algn espacio en la memoria.

Gracias por leer y con gusto espero feedback :D


Original Link: https://dev.to/voidrizoma/javascript-variables-tipos-de-dato-scope-y-el-hoisting-1fhb

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To