2011-08-25 11 views
13

¿Cuál es la diferencia entre:Cuándo utilizar return, y qué ocurre con los datos devueltos?

function bla1(x){console.log(x)} 

y

function bla(x){return console.log(x)} 

En qué casos debo utilizar return?

también, cuando se devuelve un valor de una función, ¿qué le sucede? ¿está almacenado en algún lugar?

+0

En general, si devuelve un valor de una función, debe asignarlo a un objeto/variable compatible en la persona que llama. –

Respuesta

17

¿Cuál es la diferencia

La primera función devuelve undefined (ya que no return nada explícitamente), la segunda rendimientos sean cuales sean console.log devoluciones.

¿En qué casos debería usar return?

Cuando la función está generando algún valor y desea devolverlo a la persona que llama. Tome Math.pow por ejemplo. Toma dos argumentos, la base y el exponente y devuelve la base elevada al exponente.

Cuando se devuelve un valor de una función, ¿qué le sucede? ¿está almacenado en algún lugar?

Si desea almacenar el valor de retorno, entonces usted tiene que asignar a una variable

var value = someFunction(); 

Esto almacena el valor de retorno de someFunction en value. Si se llama a la función sin asignar el valor de retorno, entonces el valor es sólo silencio cayó:

someFunction(); 

Estos son la programación básico y no sólo son relevantes para JavaScript. Debería encontrar un libro que presente estos conceptos básicos y, en particular, para JavaScript. Recomiendo leer el MDN JavaScript Guide. Tal vez el artículo de Wikipedia sobre Functions también sea útil.

+0

Gracias por esta respuesta. Bellamente respondida y directa al grano. Me hizo comprender finalmente el uso de una devolución y lo que sucede con ese valor devuelto. Siempre me pregunté qué pasó con el valor devuelto. –

4

Retorno en una función es una forma de devolver datos de la función.

Ejemplo:

function test(){ 
    var test = 1+1; 
    return test; 
} 

var feedback = test(); //feedback would now contain the value 2 if outputted. 

También podríamos enviar una variable en la función y luego regresar de nuevo hacia fuera.

Ejemplo 2:

function test(i){ 
    i= i+1; 
    return i; 
} 

var feedback = test(1); //feedback would also output the value 2. 
0

Como ya se ha mencionado, el retorno le da la posibilidad de llamar a una función y guardar su valor de retorno.

Aquí hay un pequeño ejemplo:

function bla(x) { return "blablabla"; } 

Si llamo el método voy a tener una cadena con blablabla:

var blastring = bla(x); 
alert(blastring); 

Esto daría lugar a una alerta con blablabla.

0

Con return especifica cuál es el valor de function. Puede usar este valor para realizar más operaciones o almacenarlo en una variable, etc.

Desde console.logreturn s undefined, los ejemplos en su pregunta son equivalentes, como function no llegar a una declaración de retorno volverá undefined también. Pero te voy a dar un ejemplo:

function sum(arr) { 
    var s = 0; 
    for (var index in arr) { 
     s += arr[index]; 
    } 
    return s; 
} 

function prodsum(arr, scalar) { 
    return scalar * sum(arr); 
} 

console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3)); 

el resultado será 165. Si eliminamos las return s, entonces ambos function s se returnundefined:

function sum(arr) { 
    var s = 0; 
    for (var index in arr) { 
     s += arr[index]; 
    } 
    s; 
} 

function prodsum(arr, scalar) { 
    scalar * sum(arr); 
} 

console.log(prodsum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3)); 

y el resultado será como undefined bien. Básicamente, si quiere que el function tenga una conclusión o un valor final, entonces tiene un return en él.

0

Si solo agrega return; en la función. Detiene la ejecución de la función.

Cuestiones relacionadas