2011-08-25 3 views
13

リターンを使用する場合、返されるデータはどうなりますか?

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

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

returnはどの場合に使用しますか?

また、関数から値が返されたときにはどうなりますか?それはどこかに保存されていますか?

+0

一般に、関数から値を返す場合は、呼び出し元の互換性のあるオブジェクト/変数に値を割り当てる必要があります。 –

答えて

17

何差が第1の機能

であること(それは明示的にreturn何もないように)、二番目は何console.logリターンを返すundefinedを返します。

返品はどの場合に行うべきですか?

関数が何らかの値を生成していて、それを呼び出し側に戻したい場合。例えば、Math.powとする。これは、基底と指数の2つの引数をとり、基数を指数部に戻します。

値が関数から返されると、どうなりますか?それはどこかに保存されていますか?

あなたは戻り値を格納したい場合は、これはvaluesomeFunctionの戻り値を格納する変数

var value = someFunction(); 

に割り当てる必要があります。あなたは戻り値を割り当てずに関数を呼び出す場合、その値はただ黙って落とされます。

someFunction(); 

をこれらは、基本プログラミングだけでなく、JavaScriptに関連しています。これらの基本を紹介する本、特にJavaScriptの書籍を見つけるべきです。私はMDN JavaScript Guideを読むことをお勧めします。多分、FunctionsについてのWikipediaの記事も参考になります。

+0

この回答に感謝します。美しく答えられた、そしてまっすぐにポイント。私は最終的にリターンの使用を理解し、その戻り値で何が起こるのかを知りました。私はいつも戻り値に何が起こったのか疑問に思いました。 –

4

関数の戻り値は、関数からデータを戻す方法です。

例:

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

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

我々はまた、関数に変数を送信し、それをバック返すことができます。

例2:

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

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

すでに述べたように、リターンはあなたの関数を呼び出すと、その返却値を保存する可能性を与えます。

はここで少し例を示します。

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

これはblablablaと警報につながる:

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

私はblablablaで文字列を取得するメソッドを呼び出した場合

0

returnを使用すると、functionの値が何であるかを指定します。この値を使用して、さらに操作や変数への格納などを行うことができます。 functionも同様undefinedを返しますreturn文に到達しないよう

returnundefinedconsole.logので、あなたの質問の例では、等価です。しかし、私はあなたに例を挙げましょう:

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

我々は両方のfunction秒、その後、return Sを削除した場合、結果は意志returnundefined 165になります。

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

と結果はundefinedようになりますよく基本的には、functionに結論または最終値を設定する場合は、returnが含まれています。

0

あなただけの機能でreturn;を追加した場合。関数の実行を停止します。

関連する問題