Ahora entiendo el porqué se llama así y el significado de su logo 🤯
Introducción al curso
Requisitos antes de empezar
Historia de JavaScript
JavaScript Engine
¿Cómo funciona el JavaScript Engine?
V8, el JavaScript Engine de Chrome
Profundizando en el Engine
Ejemplo de Objeto global y hoisting
Código de Ejecución
Memory Heap
Qué es Call Stack
Garbage Collection
Qué es Stack overflow
JavaScript Runtime
Qué es la asincronía en JavaScript
Recapitulación
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Diego De Granda
Stack overflow es un término empleado para referirse al desbordamiento de tareas en el Call Stack del motor de JavaScript. Esto ocurre por ciclos infinitos, funciones recursivas sin control, cambios de estado continuo, o algún programa que exceda las tareas que puede ejecutar el navegador.
Anteriormente, los navegadores no estaban preparados para manejar un stack overflow, por lo que la página web colapsaba y cerraba la aplicación. En la actualidad, si el navegador encuentra este problema, detiene la ejecución del código evitando que colapse la página web.
Stack overflow también es un sitio de preguntas y respuestas de ingeniería de software, uno de tus mejores aliados en tu carrera de estudios.
Contribución creada por Andrés Guano.
Aportes 98
Preguntas 14
Ahora entiendo el porqué se llama así y el significado de su logo 🤯
El stack overflow se genera cuando el call stack se llena completamente (pila de tareas) .Esto pasa cuando se genera o se trabaja con bucles infinitos, recurcividad y funciones.Entonces este entra en stack overflow , tenemos que tener cuidado de ocacionar estos stack!!!
Chrome nos manda un mensaje: “OYE, TRANQUILO VIEJO!”
Como cuando estás en React usando el useEffect y aún no lo sabes usar bien y generas un loop infinito y el chrome hace crash!! 😮
Que curioso que justo en esta clase, hablando de recursividad y overflow el video desborde de empatía
Tenemos nuestro Call Stack donde tenemos nuestra lista de tareas, empezando por el Global Object, se va agregando a la pila todo el código nuestro. Puede pasar que tengamos alguna función que haga que desbordemos esa pila del Call Stack, a esto se le llama Stack overflow, y se crasheará el navegador. En versiones anteriores de Chrome se cerraba por completo el navegador, ahora detectan ese desbordamiento y lo bloquean para evitar que se bloqueé todo el navegador.
function overflow() {
overflow();
}
overflow(); // Uncaught RangeError: Maximum call stack size exceeded```
Esto es otro nivel para saber como trabajar con JavaScript, se puede decir que hasta ahora es mi curso preferido.
Y con esto aprendimos algo nuevo y debemos repetir esto siempre antes de irnos a dormir: “No voy a desbordar la pila de tareas” jaja
Un desbordamiento de pila ocurre cuando hay una función recursiva (una función que se llama a sí misma) sin un punto de salida. El navegador (entorno de alojamiento) tiene una llamada de pila máxima que puede acomodar antes de lanzar un error de pila.
Aquí hay un ejemplo:
function callMyself(){ callMyself();}callMyself();```
♥️ 3:08 ♥️
¿Está el curso completo? Despues de esta clase salta el examen pero no parece que haya finalizado… ¿No está lanzado el curso “oficialmente”? Gracias!
Cuando trabajamos en microcontroladores con muy poca memoria, solo deja manejar un stack máximo de 8 niveles, pero maneja una arquitectura similar.
Una pregunta que el stackoverflow no puede responder
function gallina() {
return huevo()
}
function huevo() {
return gallina()
}
console.log("Vino primero " + gallina());
La primera vez que realicé un “ciclo for”, me pasó esto! Cuando no sabes de dónde procede el “loop”, causa estrés.
¿Qué es el Stack overflow?
El Stack overflow es un error que ocurre cuando el call stack pointer pasa por encima de su límite de pila. En otras palabras, se llaman demasiadas funciones.
¿Que lo causa?
Un Stack overflow ocurre cuando hay una función recursiva (una función que se llama a sí misma) sin un punto de salida. El navegador (entorno de alojamiento) tiene una stack call máxima que puede acomodar antes de lanzar un error de pila.
Aquí hay un ejemplo:
function callMyself(){
callMyself();
}
callMyself();
3:08 Ejemplo claro de un stack overflow
Claro, causen epilepsia!
Stack Overflow = sobre-flujo de tareas en el stack. 😄
Recuerdo que en el curso de programación básica decían que se colgaba el navegador cuando hacías una proceso infinito. Ahora no, que buena actualización
Entendido y puesto en practica
function overflow(){
overflow();
}
overflow();
Comparto con mis compañeros que este curso me esta dejando asi 🤯🤯
jajaja
Es como cuando tu pareja te llena de preguntas del porque no apareciste anoche y el cerebro te hace Crash! 😉
Crash: Bloquear/cuando una aplicación deja de funcionar por completo.
Stack overflow: Desbordamiento de pila(call stack)
Ojalá todo lo entendiera tan fácil como esta clase 😃
Momento historico para mi, siempre usaba esa pagina para buscar respuestas, pero hace poco publique una respuesta y los amino ustedes a que tambien se animen a contribuir si no lo han echo ya.
STACK OVERFLOW.
Stack overflow is the situation when the petitions made are massive so it can collapse the memory of the browser. Nowadays with V8 there is a limit of duties in the call-stack avoiding with it crashes issues.
Also “Stack Overflow” it is a platform for coders to ask and resolve questions about programming issues.
aquí les dejo la pagina de stack overflow en español para que puedan preguntar sus dudas y les puedan responder en español, para mi es excelente pensé que solamente este sitio web estaba solo en ingles pero ya salio para español, si ya lo sabían bien por ustedes pero en mi caso yo no lo sabia y recién me entero, super ahora si tenemos a la mejor comunidad de programadores en este sitio web -> https://es.stackoverflow.com/
STACK OVERFLOW
Se tiene el Call STACK, la lista de tareas, en su base esta el GLOBAL OBJECT.
todo el codigo se va agregando en la pila
y el global object, en su base va evacuando uno a uno
puede ocurrir que una funcion desborde de tareas la pila. esto es -> stack overflow
Cuando esto ocurria, el navegador se cerraba
Actualmente cuando alguna funcion empieza a llenar la pila el navegador detecta este comportamiento
y detiene la funciòn que esta ocacionando esto.
// esta funcion genera un stack overflow
function overflow() {
overflow();
};
overflow();
// VM198:1 Uncaught RangeError: Maximum call stack size exceeded
// at overflow (<anonymous>:1:18)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
// at overflow (<anonymous>:2:5)
//Esto es lo que se ve en pantalla pero al parecer alcanza a ejecutarlo mas de 250 veces
//control de loop infinitos
// o funcione recursivas
Estoy como loco!!! disfrutando tanta información 😃
function factorial(num){
let result = 1
if(num == 0){
return result
}else{
result = num * factorial(num-1)
return result
}
}
debugger;
console.log(factorial(6))
// 720
Escribi este algoritmo con la clase anterior y ahora en lo comparto en esta otra.
Es interesante observar el callstack llenarse con una llamada recursiva y otra vez vaciarse de la forma First In Last Out.
Alrededor de computación conocer estos detalles en el lenguaje me abre los ojos a entender los componentes que forma la web de manera más clara.
Los invito a participar en el reto de Javascript que comienza el 1 marzo 2023.
https://platzi.com/retos/30-dias-js/
Les comparto un blogpost en inglés de FreeCodeCamp que habla acerca del Call Stack y el Stack Overflow.
.
https://www.freecodecamp.org/news/understanding-the-javascript-call-stack-861e41ae61d4/
Stack overflow es cuando tenemos más tareas de las que podemos procesar en el call stack.
Tantas veces que visite la pagina de stackoverflow, la reconocía por el logo y hasta ahora entiendo su significado, me ha gustado muchisismo este curso, entender el funcionamiento del navegador es super importante y enriquecedor
¿Qué es crash?
El analisis que hace chrome para que no crashee el codigo, es increible.
entonces jamas podre crear un loops infinito?
en español “Desbordamiento de pila”
MY NOTES FOR STACK OVERFLOW
Es una pagina a la cual vas para ver preguntas acerca de código y otros desarrolladores se encargan de responderlas.
Como ya hablamos del call stack es donde hay una pila de tareas y se comienzan acumular
Si existe una funcion que hace que esta pila de tareas se muy larga a eso se le conoce como stack overflow
Chrome cambio esto porque esto afectaba el navegador por tanta sobre carga y lo que hacia era cerrar el navegador entonces google lo cambio para que identificara cuando esto pudiera suceder y lo evitara.
No sabía que Chrome detenia este tipo de casos, funcionara en Firefox, probare…
Si tambien lo detecta y detiene, maravilloso 😍
Con un arreglo gigante también “Crashea” el navegador y la consola.
<
let data = []
function loop() {
for (let i = 0; i < 10000000000; i++) {
data.push(i);
}
}
loop();
>
Chrome detecta cuando se puede llegar a un Stack Overflow, procede a detener la ejecución del código y genera un error.
el concepto de recursividad se aplica a la mayoría de lenguajes de programación. Lo más importante es pensar bien el caso base que acaba con las llamadas recursivas.
https://es.qwe.wiki/wiki/Stack_Overflow
Estupenda clase y ejemplo sobre stack overflow instructor Diego, interesante ese efecto que generaba anteriormente al navegador Chrome.
STACK OVERFLOW
- Cuando tenemos un ciclo, funcion o algo que hace que desbordemos nuestro Call Stack
- Chrome hizo modificaciones para que en caso de que haya un cierto numero de peticiones de algo que nos puede
llevar a un stack overflow deja de ejecutar ese codigo
- Cuando pasa esto Chrome manda un error de "Hubo un máximo de llamadas, te excediste no vamos a continuar con esto"
NOTA: esto hacia que el navegador se cerrara y nos termináramos la memoria
Recursion es un cuando una funcion se manda a llamar a si misma
con este curso me quedan claro muchos conceptos ademas de que es como la tercera vez que repaso los conceptos ya que en multiples cursos los e visto , muy bueno el curso
AAAHHH ES VERDAD, en el pasado me supo pasar bastante que los sitios se me cerraban, intuyo que por un stack overflow y es algo que simplemente dejo de pasar hace unos años, me había olvidado jeje
Cuando hablamos de Stack overflow se habla de cuando tenemos nuestra call stack donde tenemos nuestra lista de tareas empezando por nuestro Global Object. Pero que pasa cuando tenemos muchas tareas y agregamos una donde ya llenamos toda nuestra pila de tareas? Pues a esto se le conoce como Stack Overflow. Esto rompe nuestro navegador y usualmente los cierra. Chrome esta trabajando con varias funciones para evitar esto, actualmente esto solo muestra un mensaje de error para evitar cerrarse.
😄 otra forma de hacer un bug en el navegador era hacer un ciclo infinito 😄 ahora entiendo todo es maravilloso 😃
stackoverflow suena cool,
Stack overflow = desbordamiento de tareas en el motor de JavaScript llamado Call Stack. También, es un sitio de preguntas y respuestas de ingeniería de software
Stack Overflow es tu amigo ❤️
La recursión es una característica de la programación de computadores que se refiere a la capacidad de una función para llamarse a sí misma en lugar de procesar sus argumentos directamente. Esto les permite a los programadores escribir códigos más cortos y ágiles.
En HTML y CSS, la recursión se usa para crear documentos y estilos que se basan en patrones repetitivos. Por ejemplo, un programador de HTML puede usar la recursión para crear una estructura jerárquica de elementos HTML, donde cada elemento se divide en partes más pequeñas.
// bloque de código 1
<html>
<head>
<title>Título de la página</title>
</head>
<body>
<div>
<!-- bloque de código recursivo -->
<div>
<!-- bloque de código recursivo -->
<div>
<!-- código HTML aquí -->
</div>
</div>
</div>
</body>
</html>
// bloque de código 2
<style>
div {
margin: 10px;
}
div div {
margin: 5px;
}
div div div {
margin: 2px;
}
</style>
// bloque de código 3
function recursiva(valor) {
if (valor < 0) {
return;
}
console.log(valor);
recursiva(valor - 1);
}
// bloque de código 4
function factorial(valor) {
if (valor === 0) {
return 1;
}
return valor * factorial(valor - 1);
}
// bloque de código 5
function fibonacci(valor) {
if (valor === 0 || valor === 1) {
return 1;
}
return fibonacci(valor - 1) + fibonacci(valor - 2);
}
// bloque de código 6
function imprimirNumeros(valor) {
if (valor === 0) {
return;
}
console.log(valor);
imprimirNumeros(valor - 1);
}
// bloque de código 7
function escribirNumeros(valor) {
if (valor === 0) {
return;
}
document.write(valor);
escribirNumeros(valor - 1);
}
// bloque de código 8
function imprimirMensaje(mensaje, numero) {
if (numero === 0) {
return;
}
console.log(mensaje);
imprimirMensaje(mensaje, numero - 1);
}
// bloque de código 9
function imprimirMatriz(matriz, fila, columna) {
if (fila === matriz.length) {
return;
}
if (columna === matriz[fila].length) {
console.log();
imprimirMatriz(matriz, fila + 1, 0);
return;
}
console.log(matriz[fila][columna]);
imprimirMatriz(matriz, fila, columna + 1);
}
// bloque de código 10
function crearVista(lista, nivel) {
if (nivel === lista.length) {
return;
}
let elemento = document.createElement('div');
elemento.innerHTML = lista[nivel];
document.body.appendChild(elemento);
crearVista(lista, nivel + 1);
}
😃 I hope you’ll be happy this New Year until the overflow!
function happyNewYear() {
happyNewYear();
}
happyNewYear();
Si ejecutamos esto podemos ver en su maximo explendor el Stack Overflow XD mi navegador se cerro en el 2000.
function llamar(){
console.log(Pueba de funcion
);
llamar();
}
llamar();
Deseo terminar mi jornada de trabajo y empezar a cerrar mis ventanas de StackOverflow en el navegador, okno
el stack overflow se genera cuando el call stack se llena completamente generalmente ocacuonado por loop infinitos que “crashean” el navegador.
Buenas, como estan! Les comparto mi carpeta de Google Docs para que entre todos podamos seguir aportando a la toma de notas de un montón de los cursos de Platzi. Hagamos una comunidad!!!
https://drive.google.com/drive/folders/1SWGMgTMPbwgasbzcivcpcnIudc2vk_v0?usp=sharing
La primera vez que me dio Stack Overflow, crei que me habia hechado todo el programa y tenia que volver a hacer todo xD
https://www.youtube.com/watch?v=-PX0BV9hGZY Dejo esta maravilla por aca.
Entonces yo he logrado stack overflow con mi código entonces XD, obvio no fue en Chrome, fue FireFox hahahahaha.
Ahora entiendo el significado del Nombre de la Web y el de si LOGO - Siempre se aprende algo nuevo
El Stack Overflow es una sobrecarga de la pila de ejecución que ocurre cuando dentro del código por error generamos un bucle infinito cuando estamos trabajando con ciclos y funciones recursivas (que se llaman a sí mismas)
Esto significa que si tenemos un código que no se pueda parar de ejecutar las tareas serán infinitas, por lo que la pila de ejecución se sobrecarga, ocupará todo el espacio de la memoria y se crasheará el programa.
Me ha pasado que sin querer creo loops infinitos y el navegador leaguea toda la PC hasta que se cierra con el maravilloso Alt + F4. 😅
El Pobre Chrome con el Stack Overflow
Es lo que ocurre cuando una función desborda la pila de ejecución (Call Stack) y se le llama Stack Overflow.
Lo que hacen los navegadores actualmente para solucionar este problema es que tan pronto se ve que una función hace cierto número de peticiones o llamados que puedan crear un Stack Overflow, se dentenga la ejecución para evitar que ocurra.
Con esta clase también aprendí que mandando a llamar a una función a sí misma creas un loop infinito 😄
Muy interesante el concepto.
Por eso es importante que cuando se hace uso de la recursividad se debe tener un caso base donde la ejecución termine y te saque de la función.
Stackoverflow, es cuando la pila de tareas se desborda.
Vaya muy interesante
df
El stack overflow se genera cuando el call stack se llena completamente (pila de tareas) .Esto pasa cuando se genera o se trabaja con bucles infinitos, recurcividad y funciones.Entonces este entra en stack overflow , tenemos que tener cuidado de ocacionar estos stack!!!
Genial
Que buen recurso el del navegador para evitar el stack overflow!
Stack overflow -> desvordamiento de datos en la memoria
Muy interesante ver de forma practica y sencilla como se da el stack overflow! 😃
Muy claro
Entendido lo de stack overflow. 😄
Muy claro el tema
Jajajaj excelente.
Me mato ver una función recursiva sin condición de salida.😂🤣😂😂
Grande Stack Overflow
Ahora la vida tiene sentido ajaaj
MY NOTES FOR STACK OVERFLOW
Cuando hablamos de stackoverflow nos referimos a el desbordamiendo del Call Stack. (el cual funciona como una pila)
NOTA: Anteriormente el navegador se cerraba con este problema sin embargo en la actualidad Chrome implemento la modalidad de saltar un mensaje cuando encuentra una función que puede ocasionar el problema.
Un “Desbordamiento de Pila - Stack Overflow” ocurre cuando hay una función recursiva (una función que se llama a sí misma) sin un punto de salida. El navegador (hoisting environment) tiene una llamada de pila máxima (Maximum call stack ) que puede acomodar antes de lanzar un error de pila.
Entre en el estado nirvana… ahora lo entiendo todo jaja Stack overflow
😮
Ya conocemos entonces el porque del nombre de stack overflow y el significado de su logo. Sirve bastante ya que a medida que avanzamos en el curso nos vamos dando cuenta de información que ajena al curso.
Al minuto 0:56 se da el origen del logo de Stack Overflow. Ahora ya se cual es su siginificado
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?