JavaScriptでも関数は作成できます。
関数の定義方法と実行方法を簡単な例で示します。
JavaScript関数の簡単な例
js_function1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript関数の簡単な例</title>
<script>
// 関数helloを定義
function hello(){
alert("Hello!");
}
</script>
</head>
<body>
<h1>JavaScript関数の簡単な例</h1>
<p>
<input type="button" value="押してね" onclick="hello()">
</p>
</body>
</html>
実行イメージ(ボタンを押した時)

解説
ボタンを押した時、関数を実行しポップアップアラートを表示する例です。
関数の定義は通常headタグ内か、あるいは外部ファイル(拡張子js)で行います。
上記例では、headタグ内で関数を定義しています。(9行目~12行目)
// 関数helloを定義
function hello(){
alert("Hello!");
}
関数は定義しただけでは何も起きません。通常何かのイベントと組み合わせて関数を呼び出します。
ボタンを押した時というイベントは行目のinputタグにonclick属性を追加して定義しています。
<input type="button" value="押してね" onclick="hello()">
として呼び出しています。
JavaScript関数の定義方法
function 関数名(引数1, 引数2, ....){
// ここに関数内容を記述
}
JavaScript関数の実行方法
関数名(引数1, 引数2, ....);
C言語などとの違いは、関数の戻り値の型があるなしに関わらずfunctionと記述することです。
また、引数にも変数型が必要ありません。(そもそもJavaScriptの変数宣言には型がないため)
引数を持つ関数の場合
引数を持つ関数をJavaScriptでも定義できます。
例えば先ほどの関数hello()を以下の関数hello2()に書き換えてみます。
関数hello2()は、引数namaeをもつ関数です。
hello2()関数
function hello2(namae){
alert("Hello, " + namae + "さん!");
}
関数hello2()を呼び出すには以下のようにします。引数に文字列が指定できます。
hello2("山田");
ただしこの関数を呼び出すときは注意が必要です。
inputタグを以下のようにしてもうまく動作しません。
<input type="button" value="押してね" onclick="hello2("山田")">
多分コンソール画面に以下のようなエラーメッセージが出力されるはずです。
SyntaxError: Unexpected end of input
原因はonclickのダブルクォーテーションで括られた文字列の中に更にダブルクォーテーション文字列が存在しているからです。
onclick=”hello2(“山田“)” の部分
この場合は、内側のダブルクォーテーションをシングルクォーテーションに直すことで正常に動作するようになります。
<input type="button" value="押してね" onclick="hello2('山田')">
プログラム全体を示します。
JavaScript関数(引数を持つ関数)の例
js_function2.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript関数(引数を持つ関数)</title>
<script>
// 関数hello2を定義(引数を持つ関数)
function hello2(namae){
alert("Hello, " + namae + "さん!");
}
</script>
</head>
<body>
<h1>JavaScript関数(引数を持つ関数)</h1>
<p>
<input type="button" value="押してね" onclick="hello2('山田')">
</p>
</body>
</html>
実行イメージ

今回は、ボタンクリックによるイベントで関数を呼びましたが、これはあくまで一例です。
関数呼び出しのタイミングは、多岐に渡ります。
今回のボタンクリック以外にも「サイトが表示されたとき」「テキストボックスに文字が入力されたとき」あるいは「関数から関数を呼び出す」、なども考えられます。
・関数呼び出しは、何かのイベントと組み合わせて使うことが多い。


コメント