Estan mal ¬¬...
Lo único que se hace al final es ejecutar una secuencia de instruccines y salta a otra, no importa la sintaxis que se use... un buen compilador podría encontrar las similaridades de tus ciclos, incluso para un compilador un while y un for pueden ser "iguales"... la optimización es algo que va más allá de la sintáxis del lenguage... hay optimización global y local.
El argumento
Cita: es mas ineficiente por que en el ultimo ejemplo el for tiene campos vacios, y empeora el rendimiento, en el caso anterior el while empeoraba el rendimento respecto al for, por que el for lo hace todo en una sola linea, mientras que el while necesitava 2 mas.
Es erroneo, talvez lo hagas en una sola línea la sintáxis te lo dicta así, pero el punto es que el ordenador, CPU, procesador tiene definido un juego de instrucciones y esas operaciones que tu llamas una sola línea en realidad son 3, 2, 1 o más instrucciones generadas y ejecutadas posteriormente.
un
es lo mismo que
Cita: i=0;
while(i<x){
....
i++; // ++i; // i = i+1;
}
O acaso me van a decir que por poner... algo como
Cita: i=n;
superLargoCalculo(i);
Ya que consta solo de 2 líneas se va a ejecutar en menos tiempo¿?¿? ;).
Cita: for(int i=0;i< 20;i++), esto es mas eficiente que hacerlo asi:
int i=0;
while(i<20){
...
i++;
}
Creo que dependera de lo "inteligente" que sea tu compilador para notar la similitud que nosotros sabemos que existe ;)... en este caso de los diferentes interpretes de js.
El argumento de los campos vacios depende... siendo interpretado, pues la primera vez se checa si hay campos vacios y si es así, sabemos que lo escrito no va a cambiar, entonces que caso tendría checar cada vez que se ejecuta el ciclo si hay campos vacios????? nada más importará la primera vez... escepto que el diseñador del interprete crea que se necesita checar el contenido de campos vacios cada vez :).
Bueno, por último, hay tantos interpretes de js como navegadores supongo... y eso hace difícil decir que es más eficiente, puesto que no todos son desarrollados de la misma forma.
Sin duda yo dudo mucho que llaves o no llaves afecte mucho la ejecución de el programa.