• ベストアンサー

Returnを使って呼び出し元へ返す

こんにちは 今、javascriptを勉強しているのですが、 関数の処理結果はreturnを使って必ず返さないといけないのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • HNEX
  • ベストアンサー率62% (43/69)
回答No.2

undefinedは未定義値です 関数の処理は別に影響を受けません。 戻り値のない関数の戻り値を受け取るとundefinedだよっていうだけの事なので、特に気にしなくて大丈夫です。 undefinedについて詳しく知りたい場合は検索すると出てくると思います とりあえずトップに出てきたのは↓ですね http://blog.tojiru.net/article/205007468.html

question_april
質問者

お礼

そうなんですか! 理解しました。 有り難うございます! とてもわかりやすいです! URLまでのせてくださって

その他の回答 (1)

  • HNEX
  • ベストアンサー率62% (43/69)
回答No.1

別に返さなくても大丈夫です returnが無い関数は内部の処理的には暗黙的にundefinedが返却しているようです。

question_april
質問者

補足

回答有り難うございます 一つ追加で質問させてください Undefinedって、日本語にすると見つからなかったということですが、 これはつまり、処理が完了していないということですか?

関連するQ&A

  • javascriptのreturnがわからない

    javascriptのreturnとは? return、あるいは返すという概念がよくわからず困っています。 教えてgooの、下のURLより、 返すというのが、「借りていたものを返す」ではなく、 「リクエストされた質問に対し返答する」という意味での「返す」であることであり、 プログラミングでは、expression(=処理?)の結果を返すことだという理解をしています。 http://okwave.jp/qa/q2574681.html しかし、返された処理結果は、どこに返されるのでしょうか? 下のコードを例に私なりの解釈をします。 function menseki(r){ var m = 3.14 * r * r; return m; } var m = menseki(5); http://www.ajaxtower.jp/js/function/index4.htmlより javascriptの下のコードでは、ルーチンにたいして、サブルーチン(=function menseki)があり、 変数mは、関数内に有るため、スコープがローカル(=変数内)にあります。(あってますか?) このままだと、変数mは、サブルーチンの処理が終わった後、メモリから「mは3.14*r*rだよ」という情報が消されてしま宇野だともいます。 (javascriptはgarbage collectorがあり、また関数内の変数はローカルなので、関数内でしか使えないため。) でも、この変数mを、中身(=3.14*r*r)を維持したまま、関数外で使いたいときに、 変数mのreturnをすることで、メモリに 「mは3.14*r*r。 呼び出し元は、一番上のルーチンだから、実質的にはグローバル変数になります。」 とおしえてることでしょうか? また、呼び出し元は何を基準に決定されるのでしょうか?

  • 本文ではなく、returnへほとんどの処理を記述

    ・本文ではなく、returnへほとんどの処理を記述しているコードがあります ・どういう意図があるのでしょうか? ・複数の関数をreturnする関数が、たくさんあります ・どの関数も、関数本文より、returnする関数内容の方が何倍も多いです hoge = function(){  //中略   return {    a : function(){   },    b : function(){  //これが延々続く  //return関数内で即時関数実行したり ■質問1 ・処理の結果をreturnすると思っていたのですが、returnメインでそこに処理を記述していくやり方のメリットは? ■質問2 ・hoge.aでアクセスしているのですが、関数定義=オブジェクト定義でしょうか? ・下記aメソッドは、同じ意味? hoge = {  a: function(){ hoge = function(){  //中略   return {    a : function(){   },

  • javascript return について

    javascript return の使い方について こんにちは。 javascriptでhtmlとjavascriptを分けて書く方法を勉強中です。 ○html文 <a href="" name ="linkMaxcd" id ="linkMaxcd">最大値</a> ○javascript文 1)document.getElementById("linkMaxcd").onclick=function(){return maxcd();} 2)function maxcd(){    省略   return false;   } この構文の流れは、 (1)htmlの最大値というテキストリンクをクリックする (2)javascript 1)のonclickしたら、maxcdのfunctionを実行する (3)javascript 2)の省略を行い、return false;でfalseを返す ということだと思います。 javascript 2)のreturn false; のfalseは、何処に戻るのですか? ○javascript参考 1')document.getElementById("linkMaxcd").onclick=function(){maxcd();} 2')function maxcd(){    省略   } もともと上記のjavascript参考にreturnを付け加えたところで、理解できなくなりました。 returnの付け方は、javascript参考サイトの手順に書いてありました。 よろしくお願いします。 以上

  • JavaScriptのreturnについて教えて

    ■Q1 ・JavaScriptで「return」に何も指定しなかった場合、戻り値は何でしょうか? ・「return false」とは意味が異なるでしょうか? ・「return true」と同じ意味? ■Q2 ・「それ以降の処理を中止したい」という意図で使用する場合、「return」も「return false」も同じ結果となるでしょうか? ・違うのは、戻り値だけ? ■Q3 ・「return false」と「returnを記述しない」では何が違うでしょうか? ■Q4 ・「イベントのバブリング」は、「戻り値の有無」とは関係がない話でしょうか? ■Q5 ・「return false」が適用されるのは「onclick」だけ? それとも「イベント全般」? ■Q6 ・イベントが絡まない箇所で、「return false」を使用することはない?

  • returnの意味や用途の解説の補足をお願いします

    javascriptの関数内で使われるreturnの解説で、 『関数を呼び出すと処理が関数のブロック内に移りますが、ブロック内でreturn文が実行されると関数内の処理は終了し、return文の後に記述された式を評価した結果が関数の呼び出し元に返されます。関数呼び出しを「変数名 = 関数名(..)」のように記述しておけば、関数から返された値を変数に代入することができます。 』 と説明されています。 上記の説明に出てくる 「return文の後に記述された式を評価した結果が関数の呼び出し元に返されます」 「関数から返された値」 という意味がよく分かりません。 ↓コードの例で例えるとブラウザ側はどういう読み方をするのでしょうか。 <script type="text/javascript"> function kansuSPadd(para){ rc = ""; for (i = 0; i < para; i++){rc = rc + " ";} return rc; } //(1) for (i = 0; i <= 8; i++){ document.write(kansuSPadd(i) + "Welcame to Chaichan's Page <br>"); } //(2) for (i = 8; i >= 0; i--){ document.write(kansuSPadd(i) + "Welcame to Chaichan's Page <br>"); } </script> 自分の考えではreturn rc;がない場合のときは、 (↓はreturn rc;がない場合の自分考え方です) (1)ページを開く (2)ブラウザ側は (3)(1)のforを読む (4)(1)のforでi=0のときdocument.write(kansuSPadd(0) + "Welcame to Chaichan's Page <br>")でfunction内では全角空白が1つ出力 (5)また(1)のforを読む (6)(1)のforでi=1のときdocument.write(kansuSPadd(1) + "Welcame to Chaichan's Page <br>")でfunction内では全角空白が2つ出力 : : これを(2)のforの最後まで繰り返す ↑という感じです。 なぜreturnが必要なのか分かりません。

  • functionのreturnについて

    初心者です。 おバカな私にご教授お願い致しますm(_ _)m functionについて調べていました。 好きな関数を組み合わせて使えるので便利だと思いましたが、、、 returnの意味が理解できません。 function xxx(){ $sum = 'こんにちは'; return $sum; print 'ここは処理されない'; } 上記の様な説明をネットで見たのですが、return の下が処理されないのだったら、そもそも function xxx(){ $sum = 'こんにちは'; } これでいいじゃないか!と思うのですが、なぜ、returnが必要なのでしょうか。 よろしくお願いしますm(_ _)m

    • ベストアンサー
    • PHP
  • IEで、return 0; をすると 画面に0が表示されてしまいます。

    IEで、return 0; をすると 画面に0が表示されてしまいます。 あるJavascriptのプログラムをIEで動かしたところ、関数中で return 0; をしたときに画面に0だけが表示されてしまいます。 どうしてこのようなことが起こるのでしょうか? また、その対策も教えてください。 ちなみにIE8で、return false; でも同じ現象が起こり、0, false 以外ではそのような現象は起こりませんでした。

  • return *this

    c++言語勉強中のものです。あるクラスのオブジェクトをobj とし、動的確保された メモリ領域pにobj をコピーするときコピーコンストラクターではメンバ関数は strcpy ( p. obj ); で終わるのに対し、代入演算子による代入コピーでは同じく strcpy ( p. obj ); の次に return (* this ); が追加され参考としているweb 資料では その目的は、「これは決まり文句 」で済ませていますが私には return ( *this )が 何故コピーコンストラクタの処理文には無く代入演算子処理文末尾にはあるのかわかりません。上記理由を教えていただければありがたいです。

  • returnの戻り値について

    以前の質問を見ていてひとつわからないことがあるのです。 内容をそのままコピーしたのですが、この場合、キーが押されたときに関数を呼び出し、 returnで戻り値が「true/false」とありますが、戻ってきたときはどこにtrue/falseが入っているのですか? <BODY> <FORM NAME="f" ACTION="UPDATE" METHOD="POST" TARGET="FRAME_D" onSubmit="return conf();"> <INPUT TYPE="TEXT" NAME="FM_KINGAKU" onKeyDown="return keyCheck(event.keyCode);" > <SCRIPT TYPE="text/javascript" SRC="./JS.SOURCE"></SCRIPT> <SCRIPT TYPE="text/javascript"> <!-- function keyCheck(keyCodes){ if((keyCodes >= 49 && keyCodes <= 57) || (keyCodes >= 96 && keyCodes <= 105) || keyCodes == 46 || keyCodes == 8) return true; else return false; } // --> </SCRIPT> </FORM> </BODY>

  • [return]の役割について

    バージョン : ActionScript 3.0 よく参考書籍等では、[returnは関数内の値を戻します]とありますが… stage.addEventListener(MouseEvent.MOUSE_OVER , buttonTrue); function buttonTrue(e :MouseEvent) :void {  e.target.buttonMode = true; } 例えば上記の処理は、イベントディスパッチャーを介して[mover]関数の値を返していると思うのですが…? まったく[return]の真価がわかりません…初歩的な質問で申し訳ありませんが、何方か教えて頂けませんでしょうか?

    • ベストアンサー
    • Flash

専門家に質問してみよう