<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>関数のまとめ</title><revhistory><revision><revnumber>7</revnumber><date>2011-12-20 01:42:12</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-12-20 01:30:43</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-12-20 01:13:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-12-20 01:08:58</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-12-20 01:08:34</date><authorinitials>masahiko</authorinitials><revremark>名前を'js.関数のまとめ'から変更。</revremark></revision><revision><revnumber>2</revnumber><date>2011-12-08 02:13:34</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-12-08 02:12:43</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>関数のまとめ</title><!--rule (<hr>) is not applicable to DocBook--><para> 関数の定義は次の形式で行う </para><itemizedlist><listitem override="none"><screen><![CDATA[function namae ( hikisuu ) {
        ...
}]]></screen></listitem><listitem override="none"><para>namae の部分は関数名、hikisuuは引数。 </para></listitem><listitem override="none"><para>{ と } に挟まれた部分を関数本体という。 </para></listitem></itemizedlist><para>関数本体は数行にわたっても良い。 </para><para>通常、本体の１行目は var 宣言であり、最後は return文である。 </para><para>本体は右にずらして揃えて書くのがよい。（インデントという） </para><!--rule (<hr>) is not applicable to DocBook--><section><title>構文</title><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E9%96%A2%E6%95%B0%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81?action=AttachFile&amp;do=get&amp;target=kansuu1.png"/></imageobject><textobject><phrase>kansuu1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>関数の実行</title><para>function ... { ... } が読み込まれた時点では、関数の定義が行われるだけで、本体部分の実行はされない。 </para><para>関数呼び出しが行われたとき、次の手順で実行される。 </para><itemizedlist><listitem override="none"><para>（１） 引数の名前と、実際の引数の値が対応づけられる。 </para></listitem><listitem override="none"><para>（２） 関数本体内の文が順に実行される。 </para></listitem><listitem override="none"><para>（３） return文により値が返される。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>return文</title><para>関数の実行は次のいずれかのとき終了し呼び出し元にもどります。 </para><itemizedlist><listitem><para>本体の最後まで処理されたとき </para></listitem><listitem><para>return文が実行されたとき </para></listitem></itemizedlist><para>値を返すreturn文 </para><itemizedlist><listitem override="none"><screen><![CDATA[return 式 ;]]></screen></listitem><listitem override="none"><para>return文がこの形で使われたとき、関数は指定された値を返します。 </para></listitem></itemizedlist><para>値を返さないreturn文 </para><itemizedlist><listitem override="none"><screen><![CDATA[return;]]></screen></listitem><listitem override="none"><para>return文がこの形で使われたとき、関数は値を返しません。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>関数の利用</title><para>値を利用する関数呼び出し </para><itemizedlist><listitem override="none"><para>式の中で関数を記述し、その値を利用できます。 </para><screen><![CDATA[x = kansu1(...);]]></screen></listitem></itemizedlist><para>値を利用しない関数呼び出し </para><itemizedlist><listitem override="none"><para>値を利用しないときは文の形で記述します。 </para><screen><![CDATA[kansu2(...);]]></screen></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>引数の個数</title><para>引数の数は２つ以上でもかまいません。 引数が２つ以上のときはカンマで区切って書きます。 </para><itemizedlist><listitem override="none"><screen><![CDATA[function name ( param1, param2, param3 ) {
        ...
}]]></screen></listitem></itemizedlist><para>引数の無い関数も可能です。 引数がなくても括弧は必要です。 </para><itemizedlist><listitem override="none"><screen><![CDATA[function name ( ) {
        ...
}]]></screen></listitem></itemizedlist><para>関数定義での引数の個数と、関数呼び出しでの引数の個数は一致しなければなりません。 </para><para>引数が３つの関数を呼び出すときは </para><itemizedlist><listitem override="none"><screen><![CDATA[a = name(2,4,6);]]></screen></listitem></itemizedlist><para>引数が０個の関数を呼び出すときは </para><itemizedlist><listitem override="none"><screen><![CDATA[b = name( );]]></screen></listitem></itemizedlist><para>のような書き方になります。 </para></section></section></article>