JavaScript - Funciones con returns

 
Vista:
Imágen de perfil de Dennis
Val: 12
Ha aumentado su posición en 143 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Funciones con returns

Publicado por Dennis (18 intervenciones) el 06/06/2021 03:07:09
Hola a todos y saludos.
Qué es mejor.
Esto
1
2
3
function suma(numero1, numero2){
    return numero1 + numero2;
}
o
1
2
3
4
function suma(numero1, numero2){
    let sum = numero1 + numero2;
    return sum;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Funciones con returns

Publicado por joel (895 intervenciones) el 06/06/2021 09:43:19
No creo que varie mucho en el proceso de ejecución, aunque a mi personalmente me gusta mas la primera opción!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gio
Val: 368
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Funciones con returns

Publicado por Gio (79 intervenciones) el 07/06/2021 10:09:51
Buenas Dennis, la respuesta a tu pregunta es curiosamente que la segunda opción es mas veloz que la primera. ¿Cómo lo se y como confirmarlo? Bueno, improvisé un código que ejecuta cada función una y otra vez durante un segundo, luego compara la cantidad de veces que se ejecutaron y te termina indicando cual es mas rápida y en que porcentaje es mas rápida con respecto a la función determinada como la mas lenta.

Código usado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function suma1(numero1, numero2){
    return numero1 + numero2;
}
function suma2(numero1, numero2){
    let sum = numero1 + numero2;
    return sum;
}
 
//////////
 
var tf, i1, i2;
for(let i=0; i<10; i++){
    tf=new Date().getTime()+1000;
    i1=0;
    while(tf>=new Date().getTime()){
        suma1(i, 100);
        i1++;
    }
 
    tf=new Date().getTime()+1000;
    i2=0;
    while(tf>=new Date().getTime()){
        suma2(i, 100);
        i2++;
    }
 
    /////////
 
    if(i1>i2){
        console.log("suma1 es "+(100-i2/i1*100)+" mas veloz que suma2. ("+i1+"/"+i2+")");
    } else if(i2>i1){
        console.log("suma2 es "+(100-i1/i2*100)+" mas veloz que suma1. ("+i2+"/"+i1+")");
    } else {
        console.log("suma1 y suma2 son igualmente veloces. ("+i1+"/"+i2+")");
    }
}


Mis resultados en la consola de Google Chrome:
velocidadGoogleChrome

Mis resultados en la consola de Fire Fox:
velocidadFireFox


Posible explicación de por que puede ser así: Lo lógico sería pensar que la primera función es más optima que la segunda porque se ve mas limpia y va al grano, pero precisamente por ello es que es menos optima, javascript tendrá que encontrar la secuencia de pasos para completar las instrucciones que te ahorraste en escribir. En pocas palabras, mientras mas se complica el programador, mas fácil se le hará al programa al ejecutarse ya que el programador le ahorra trabajo, esto se lo conoce como "programación a bajo nivel" por si no sabes lo que es y te interesa el tema, en internet encontraras mejores definiciones de las que te puedo dar yo.

Te pondré un ejemplo en la vida real: Imagina que un profesor (representará al programador y vos representas la ejecución de un programa) solo te dice que tienes que hacer un trabajo sobre el medio ambiente (esto representa la primera función de suma que planteaste en el post, es una simple instrucción y va al grano). Ahora imagina un caso distinto donde tu profesor te dice que tienes que hacer un trabajo sobre el medio ambiente pero además te da una lista con links de páginas web de donde puedes sacar información sobre el tema (esto representa la segunda función de suma que planteaste en tu post, no solo es la instrucción de hacer esa investigación, si no que también te proporciona una ayudita con la lista de links, esto te va a ahorrar tiempo a la hora de investigar sobre el tema y vas a terminar tu tarea antes). En el segundo caso, tu profesor (programador) se está complicando más para que vos (ejecucion de un programa) te compliqués menos.


Nota: te aconsejo poner en ejecución el código sin tener programas en ejecución y con el navegador limpio (sin pestañas abiertas) para obtener valores mas precisos. También tené en cuanta que no fue considerado cuanto tarda tu navegador en obtener el valor devuelto por "new Date().getTime()" en la comparación del while, por lo que el resultado no va a ser 100% preciso pero si estará muy cerca de la realidad.

Ojalá te sirva todo esto, un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Dennis
Val: 12
Ha aumentado su posición en 143 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Funciones con returns

Publicado por Dennis (18 intervenciones) el 08/06/2021 04:19:37
Gracias por todo, he aprendido mas de lo que puedes imaginar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar