Vol.22|SSCのホームページ制作・集客スクールブログ2014.12.01S.SCSSFlashHTMLPHPSEOSNSWebデザインWebマーケティングWeb制作WordPressブログこんにちは、鈴木です。今回は、今まで作ったプログラムで説明が足りなかった部分を補足したいと思います。関数を定義する方法は大きく分けて次の3つがあります。本講座で書いてきた関数はすべてfunction命令で定義しました。基本的な構文はこちらになります。戻り値}関数名は適当で構わないと今までの講座で言っていましたが、関数名を付けるときは以下の二つに注意してください。識別子は次の規則があります。1文字目は、英字/アンダースコア(_)/ドル記号($)のいずれかであること2文字目は以降は、1文字目で使える文字、または数字であること変数名に含まれる英字の大文字、小文字は区別されるJavascriptで意味を持つ予約語でないこと予約語とは例えば、ifやforなどのECMAScriptの仕様で既存のキーワードとして予約されている言語です。1文字目に数字を入れたり、2文字目以降に記号などを使わなければ、特に意識する必要はないと思います。後は、分かりやすい関数名にするだけです。function命令で注意する点で、引数を指定する丸カッコ()や関数の中身を指定する中カッコ{}は省略することができません。省略すると関数の中身がそのまま出力されます。function命令は静的な構造を宣言します。これは実際に例を出して説明します。a*b;}これは、文字列を出力するdocument.writelnでmultiという関数の結果を表示します。*multiはmultiplication掛け算の略です。1の時点はmultiという関数は定義されていませんが、ブラウザ上では3×4の答え12が表示されます。これが、function命令は静的な構造を宣言しているということです。静的な構造とは「コードを解析/コンパイルするタイミングで、関数を登録している」という意味で、もっとわかりやすく言うと、プログラムが実行される前に、multiという関数がコンピュータによって認識されているということです。1の時点で関数が定義されていなくても、関数の答えが表示する訳です。◆Functionコンストラクタ経由で定義JavaScriptの組み込みオブジェクトとしてFunctionオブジェクトがあります。このFunctionオブジェクトのコンストラクタを利用して関数を定義することができます。基本的な構文はこちらになります。a*b");document.writeln(multi(3,4));*ここで引数を”a,b”と指定することも可能です。function命令にはないFunctionコンストラクタ重要な特徴として、関数の中身を文字列として指定することができる点。動的に関数の挙動を変えることができます。基本的な構文はこちらになります。変数名=function(引数1〔,引数2...〕){関数内で実行される任意の命令(群)戻り値}ここでも、先程の掛け算の関数の例をこの形にします。a*b;}document.writeln(multi(3,4));function命令と似ていますが、以下の違いがあります。function命令では、関数名を直接定義しているのに対し、関数リテラルでは、function(a,b)と名前のない関数を定義した上で、変数multiに格納しています。このように、宣言したときには名前のない関数を匿名関数、または、無名関数といいます。*function命令の終わりで説明した静的な構造に関して、Functionコンストラクタと関数リテラルは当てはまりません。そのため、function命令の終わりで説明した形でコードを書くとエラーが生じます。2.変数宣言は必須であるか?JavaScript講座VIで変数を省略することは可能であるとか書きましが、省略することで生じる問題についてここで書きたいと思います。range;}document.writeln(getvalue());-3document.writeln(range);-4この例で、仮にvarと宣言していた場合、3では「Local」、4では「Global」が表示されます。これは、グローバル変数、ローカル変数を利用しているため、正しい動作となります。この例では、34ともに「Local」が表示されます。いうと、var宣言されなかった変数はすべてグローバル変と見なされるからです。1で宣言した変数が2で上書きされてしまったのです。ローカル変数を使う時は、必ずvar宣言する。いった不具合が生じないために、原則として変数にはvarを付けるようにしましょう。SSCのホームページ制作・集客スクール当社では、WordPress講座を中心としたホームページ制作・集客スクールを運営しています。教室は、さいたま市の浦和駅から徒歩5分。・Webのスキルを習得したい学生などなど、様々な方に幅広い目的で受講していただくことが可能です!SSCのホームページ制作・集客スクールはこちら。