¡Te damos la bienvenida a este reto!

1

¡Bienvenido al mundo de JavaScript!

Día 1

2

Variables, funciones y sintaxis básica

3

Tipos de datos

4

Playground - Retorna el tipo

5

Tipos de datos - pt 2

Día 2

6

Operadores

7

Hoisting y coerción

8

Playground - Calcula la propina

9

Alcance de las variables

Día 3

10

Condicionales

11

Playground - Calcula años bisiestos

12

Switch

13

Playground - Obten información de mascotas según su tipo

14

Ciclos

15

Playground - Dibuja un triangulo

Día 4

16

Arrays

17

Playground - Encuentra al michi mas famoso

18

Objetos

19

Playground - Obten el promedio de los estudiantes

Día 5 - Checkpoint

20

Playground - encuentra el palindromo más grande

Día 6

21

Reasignación y redeclaración

22

Modo estricto

Día 7

23

Debugging y manejo de errores

24

Programación funcional

Quiz: Día 7

Día 8

25

Closures

26

Playground - Crea una calculadora con closures

27

Higher order functions

28

Playground - Crea tu propio método map

Día 9

29

ECMAScript

30

TC39

Quiz: Día 9

Día 10 - Checkpoint

31

ES6

32

ES7

33

Playground - Task planner

Día 11

34

Asincronismo

35

Playground - Promesas

36

Manejando el asincronismo

37

Playground - Resuelve el callback hell usando promesas

38

Playground - Resuelve el callback hell usando async/await

Día 12

39

Arrays a profundidad

40

Métodos de arrays: Every, Find y findIndex

41

Playground - Válida el formulario

Día 13

42

Métodos de arrays: Includes, Join y concat

43

Playground - agrupa los productos

44

Métodos de arrays: Flat y FlatMap

45

Playground - Encuentra la ubicación del valor buscado

Día 14

46

Mutable functions

47

Playground - Modifica una lista de compras

48

Métodos de arrays: sort

49

Playground - Ordena los productos

Día 15 - Checkpoint

50

Playground - Sistema de reservaciones de un hotel

Día 16

51

Programación orientada a objetos en JavaScript

52

Objetos literales

53

Playground - Congela el objeto recursivamente

Día 17

54

Prototipos en JavaScript

55

Playground - Modifica el prototype de los arrays

56

Playground - Crea un auto usando clases

Día 18

57

Abstracción en JavaScript

58

Playground - Sistema de carrito de compras

59

Encapsulamiento en JavaScript

60

Playground - Encapsula datos de los usuarios

Día 19

61

Herencia en JavaScript

62

Playground - Jerarquía de animales

63

Polimorfismo en JavaScript

64

Playground - Sistema de pagos

Día 20 - Checkpoint

65

Playground - Agenda de vuelos

Día 21

66

Patrones de diseño

67

Sinlgeton y Factory pattern en JavaScript

68

Playground - Implementa singleton en un chat

Día 22

69

Adapter y Decorator pattern en JavaScript

70

Playground - Personaliza productos de una tienda

71

Builder y Protype pattern en JavaScript

72

Playground - Mejora el código usando builder pattern

Día 23

73

Facade y proxy pattern en JavaScript

74

Playground - Proxy en servicio de mensajería

75

Chain of responsability y Observer pattern en JavaScript

76

Playground - Implementación de Observador en Newsletter

Día 24 - Checkpoint

77

Playground - Crea un task manager con patrones de diseño

Día 25

78

Estructuras de datos en JavaScript

79

Playground - Crea tu propia implementación de un array

80

Hash tables en JavaScript

81

Playground - Implementación de una HashTable para Contactos

Día 26

82

Set en JavaScript

83

Playground - Remueve duplicados de una lista

84

Maps en JavaScript

85

Playground - Crea un organizador de tareas

Día 27

86

Singly Linked List en JavaScript

87

Playground - Agrega métodos a la singly linked list

88

Playground - Implementación de una singly linked list

Día 28

89

Stacks en JavaScript

90

Playground - Crea un stack para una playlist

Día 29

91

Queues en JavaScript

92

Playground - Crea una cola de emails

Día 30

93

¡Lo lograste!

Live Class

94

30 días de JS con Juan DC

95

30 días de JS con Nicobytes

96

30 días de JS con GNDX

97

30 días de JS con LeoCode

98

30 días de JS con Teffcode

99

Sesión: Cierre de los 30 días de JavaScript

Hoisting y coerción

7/99

Lectura

El hoisting es un comportamiento de JavaScript en el que las declaraciones de variables y funciones son movidas al comienzo del ámbito actual antes de que cualquier otro código sea ejecutado. Esto significa que las declaraciones de variables y funciones pueden ser utilizadas antes de haber sido declaradas en el código.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 9

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Aquí tienes algunos datos curiosos sobre hoisting y coerción en JavaScript:


.

  • El término “hoisting” se refiere a la forma en que JavaScript mueve las declaraciones de variables y funciones al principio del ámbito de ejecución, antes de que se ejecute el código. Esto significa que puedes usar una variable o una función antes de haber sido declarada, aunque no es una buena práctica.
    .
  • A diferencia de otros lenguajes de programación, en JavaScript puedes declarar una variable después de haberla utilizado, gracias al hoisting.
    .
  • La coerción es la conversión automática de un tipo de dato a otro en JavaScript. Por ejemplo, si concatenas una string y un number en JavaScript, el number se convierte automáticamente en string. Esto se conoce como coerción implícita.
    .
  • JavaScript también tiene coerción explícita, que es cuando tú conviertes explícitamente un tipo de dato a otro utilizando las funciones integradas de JavaScript, como parseInt() o toString().
    .
  • La *coerción implícita puede dar lugar a comportamientos inesperados en el código. Por ejemplo, si intentas comparar dos valores utilizando el operador de igualdad == en lugar del operador de igualdad estricta ===, JavaScript puede realizar una coerción implícita de los valores antes de compararlos, lo que puede dar lugar a resultados inesperados.
    .
  • La coerción también puede afectar a las operaciones aritméticas. Por ejemplo, si intentas sumar una string y un number en JavaScript, el number se convierte en string y la operación se convierte en una concatenación de cadenas.

¡Hola tú!

Quizás el Hoisting pueda sonar algo raro al principio, pero te dejo un vídeo que me ayudó por completo con bonitas animaciones :3 para aprender el concepto de hoisting en caso que hayas finalizado con dudas.

= // asigna
== // compara
=== // equivale

lo que pasa es lo siguiente

console.log(miNombre);
let miNombre = "jose"

cuando se empieza a leer el código encuentra una variable que es miNombre que esta dentro del console.log lo que hace es declárala al principio antes del console.log y como no esta inicializada es decir no tiene valor se pone como undefined después encuentra el console.log esto hace que se muestre el valor de la variable y como no estaba inicializada hasta ese momento el valor es undefined pero diferente seria si console.log estuviera después de ser inicializada la variable es decir de tener el valor “jose”

Excelente clase. Muy claro como se explico hoisting para una variable.

Existen dos tipos de coerción:

  1. Implícita:

El lenguaje JS lo hace:

console.log(4 + "7"); //47 //JavaScript interpreta a 7 como un string y lo que hace es concatenar el 4 al inicio.
  1. Explícita:

El desarrollador lo hace

let a = 4;
let c = String(a);
console.log(typeof c); //"string"

7/80 Hoisting y coerción
El hoisting es un comportamiento de JavaScript que mueve las declaraciones de variables y funciones al comienzo del ámbito antes de que cualquier otro código sea ejecutado. Esto significa que las variables y funciones pueden ser utilizadas antes de su declaración en el código.

console.log(x);
var x = 5;

//JavaScript interpreta este código como:

var x;
console.log(x);
x = 5;

Coerción es el proceso en el que JavaScript intenta convertir automáticamente un valor de un tipo a otro para que puedan ser comparados o operados. Esto puede dar lugar a algunos resultados inesperados si no se tiene en cuenta.

console.log(1 == "1"); // true

console.log(true == 1); // true

Esto lo vi en el curso básico de JavaScript de Diego, pero nunca está de más repasar los conceptos otra vez. 💚

andaba re perdido con esto JAJAJAJ gracias!!!, un compañero compartio un link de un video de yt acerca de que es el Hoisting y me quedo mas claro