dポイントプレゼントキャンペーン実施中!

下記サンプルコードのreturn result;というのはどこに値を返しているのでしょうか。
また、return alert(result);とすれば値が表示されるようになりますが、
この場合returnは必要なのでしょうか。returnの使い方がいま一つ分かりません。
サンプルコードはhttps://developer.mozilla.org/ja/Core_JavaScript …からとってきました。

<script>
function myConcat(separator) {
var result = "";

// 区切りでない引数を反復する
for (var i = 1; i < arguments.length; i++)
result += arguments[i] + separator;

return result;
}

// "red, orange, blue, " を返す
myConcat(", ", "red", "orange", "blue");

// "elephant; giraffe; lion; cheetah; " を返す
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");

// "sage. basil. oregano. pepper. parsley. " を返す
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
</script>

A 回答 (2件)

こんにちは。



関数内の処理の終了時、呼び出し元に戻すのがreturnになります。

このサンプルスクリプトの場合は

var value = myConcat(", ", "red", "orange", "blue");

にするとvalueに関数内のresultの内容が返ってきます。

myConcat(", ", "red", "orange", "blue");
のみで呼び出した場合、戻ってきた値が使われていないので必要あるの?という疑問が出てきます。


例えば入力チェク等だとtrueかfalseを返したりします。

function isCheck ( val ) {
return val === '';
}

var isFlag = isCheck ( '' );

にすれば呼び出し元のisFlagにはval===''で評価した値が返ってきます。(この場合はtrue)

あとは関数の処理を抜ける場合にこんな使い方もあります。

function isCheck ( val ) {
if ( val === '' ) return;
alert ( val + 'は空文字ではありません' );
}

この場合valが空白だとisCheckの処理を中止して呼び出し元に戻ります。
    • good
    • 0
この回答へのお礼

returnは

1)関数内で処理した戻り値を変数として格納する。
function tashizan(n1,n2){
return n1+n2;
}
var val=tashizan(1,1);
alert(val);//2


2)入力チェクに使える。
function isCheck ( val ) {
return val === '';
}
var isFlag = isCheck ( '' );


3)関数内での処理を中止させ、呼び出し元へ戻させる。
function isCheck ( val ) {
if ( val === '' ) return;
alert ( val + 'は空文字ではありません' );
}


の3つの使い方があるのですね。
なんとなく分かりました。使い慣れて理解を深めていきたいと思います。

お礼日時:2012/02/14 18:19

引数は関数に値を与えるときに使います。


逆に、returnは関数の結果を値として受け取るときに使います。

function tashizan(n1,n2){
return n1+n2;
}

var val=tashizan(1,1);

alert(val);//2

例に提示されたコードは、returnや引数の基本を学ぶには適切ではないと思います。
    • good
    • 0
この回答へのお礼

参考になりました。有難うございました。

お礼日時:2012/02/14 18:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!