2011-08-25 15 views
13

Qual è la differenza tra:Quando utilizzare il reso e cosa succede ai dati restituiti?

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

e

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

In quali casi occorre usare return?

Inoltre, quando viene restituito un valore da una funzione, cosa succede? è memorizzato da qualche parte?

+0

In generale, se si restituisce un valore da una funzione è necessario assegnarlo a un oggetto/variabile compatibile nel chiamante. –

risposta

17

Qual è la differenza

La prima funzione restituisce undefined (in quanto non return nulla esplicitamente), il secondo restituisce qualsiasi console.log rendimenti.

In quali casi è necessario utilizzare il reso?

Quando la funzione genera un valore e si desidera restituirlo al chiamante. Prendi ad esempio Math.pow. Prende due argomenti, la base e l'esponente e restituisce la base sollevata all'esponente.

Quando viene restituito un valore da una funzione, che cosa succede? è memorizzato da qualche parte?

Se si desidera memorizzare il valore di ritorno, allora dovete assegnarlo a una variabile

var value = someFunction(); 

Questo memorizza il valore di ritorno di someFunction in value. Se si chiama la funzione senza assegnare il valore di ritorno, allora il valore è solo caduto in silenzio:

someFunction(); 

Sono Principi di programmazione e non sono rilevanti solo per JavaScript. Dovresti trovare un libro che presenti queste basi e in particolare per JavaScript, consiglio di leggere lo MDN JavaScript Guide. Forse l'articolo di Wikipedia su Functions è utile pure.

+0

Grazie per questa risposta. Bella risposta e dritto al punto. Mi ha fatto capire finalmente l'uso di un ritorno e cosa succede con quel valore restituito. Mi sono sempre chiesto cosa fosse successo al valore restituito. –

4

Il ritorno in una funzione è un modo per passare i dati dalla funzione.

Esempio:

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

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

Potremmo anche inviare una variabile in funzione e poi tornare di nuovo fuori.

Esempio 2:

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

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

Come già accennato, cambio si dà la possibilità di chiamare una funzione e salvare il suo valore di ritorno.

Ecco un piccolo esempio:

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

Se chiamo il metodo mi metterò una stringa con blablabla:

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

Questo si tradurrebbe in un avviso con blablabla.

0

Con return si specifica il valore di function. È possibile utilizzare questo valore per eseguire ulteriori operazioni o per memorizzarlo in una variabile e così via.

Dal console.logreturn s undefined, gli esempi in tua domanda sono equivalenti, come function non raggiunge una dichiarazione di ritorno tornerà undefined pure. Ma lasciate che vi faccia un esempio:

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)); 

Il risultato sarà 165. Se togliamo le return s, allora entrambe le function s saranno 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)); 

e il risultato sarà come undefined bene. Fondamentalmente, se vuoi che il valore function abbia una conclusione o un valore finale, hai un return al suo interno.

0

Se si aggiunge solo return; nella funzione. Interrompe l'esecuzione della funzione.

Problemi correlati