Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
¿Por qué for of loop acepta la palabra clave const?

Una variable declarada con la palabra clave const no se puede reinicializar. Entonces, ¿por qué la palabra clave const funciona para for of loop? Por ejemplo, si tengo un ciclo como for(const x of array){...code here...} . ¿Por qué funciona en lugar de arrojar un error como en el caso de for(const x=0;x<array.length;x++){...code here...} ?
¿Se debe al hecho de que el último for loop mencionado reinicializa el valor de la variable x pero, solo lo declara una vez, en otras palabras, la variable x se declara para todo el ciclo?
Pero, ¿qué pasa con el bucle for of ? ¿Está redeclarando el valor de x cada vez que se realiza una iteración?
Si no es así, ¿qué factores hacen for of funcione el bucle anterior mencionado?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

En el segundo ejemplo, establece const x en cero y luego intenta modificar el valor con x++. Como su nombre lo indica, no puede modificar el valor de una constante después de declararla. Si intentara x++ dentro del ciclo for/of, también generaría un error. Presumiblemente, su bucle for/of solo lee el valor de x y no lo altera (digo presumiblemente porque no compartió el código para esta parte).

about 4 years ago · Juan Pablo Isaza Report

0

El bucle for tradicional es un elemento básico de muchos idiomas y, a menudo, toma una forma como

 for(x=0;x<array.length;x++)

Esta construcción funciona debido al hecho de que la x es visible no solo dentro del bucle, sino también entre iteraciones , por lo que x++ funciona. Los bucles for de JavaScript fueron diseñados para funcionar de manera similar. Una variable declarada en la declaración de un bucle for es visible en todo el cuerpo del bucle y entre iteraciones. (las cosas se vuelven un poco más extrañas con let , pero eso no es realmente relevante para el problema aquí)

for..of es una bestia completamente diferente. A pesar de que usa la misma palabra - for - que la construcción for(;;) , funciona de manera bastante diferente. for..of invoca el iterador del objeto para cada iteración, y los valores devueltos por el iterador no se inicializan antes del bucle; son específicos de cada iteración , por lo que tener algo como x++ no tendría mucho sentido.

for..of , en pseudocódigo:

 iterator = getIteratorFromObject(); loop { if (iterator.done) break; nextValue = iterator(); // execute loop body with nextValue }

El valor devuelto por el iterador, cuando se inicializa con const (que tiene alcance de bloque, no alcance de función), tiene sentido que se limite solo al bloque de esa iteración en particular. (Si intentara reasignar el identificador const , al igual que en un bucle for tradicional, obtendría un error).

A diferencia de un for tradicional, en realidad no hay ningún valor inicial para inicializar (aparte del iterador, pero el consumo del iterador se abstrae detrás del motor de JavaScript).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!