概要と目標
一定間隔ごとに一連の処理を、
繰り返せるようになろう。
独自関数と、タイマー処理の基本を学習し、
一定間隔ごとに一連の処理の流れを繰り返すプログラムを作成しよう。
独自関数と、タイマー処理の基本を学習し、
一定間隔ごとに一連の処理の流れを繰り返すプログラムを作成しよう。
関数は自分で作ることも出来る。何度も使う一連の処理の流れを登録しておくことで、
いつでも呼び出しができるようになる。
function 関数名(引数) {
// ここに関数として登録する処理を記述
return 戻り値;
省略可
}
*.引数を複数必要とする場合は、「,(半角カンマ)」で区切って指定する。
関数名(引数)
// 関数の登録
function areaOfTriangle(base, height) {
var result = base * height / 2;
console.log(result);
}
// 関数の登録
function areaOfTriangle(base, height) {
var result = base * height / 2;
console.log(result);
}
// 関数の呼び出し
areaOfTriangle(6, 10);
関数を登録するブロック内で、console.log() をすると必ずコンソールに出力してしまう。
時には、変数に代入したり、if文の条件式に使いたいときもある。
なお、関数のブロック内で宣言した変数は、そのブロック内でしか使えない。
従って、関数の処理の結果を外に出すには、戻り値を設定必要がある。
functionのブロックの中にある、console.log()をコメントにし、戻り値を設定する
// 関数の登録
function areaOfTriangle(base, height) {
var result = base * height / 2;
// console.log(result);
return result;
}
areaOfTriangle()の結果を変数に代入し、コンソールに出力したり、
if文の条件式に利用する// 関数の登録
function areaOfTriangle(base, height) {
var result = base * height / 2;
// console.log(result);
return result;
}
// 関数の呼び出し
var result = areaOfTriangle(6, 4);
console.log(result);
if (result > 10) {
document.write('10cm<sup>2</sup> より大きい三角形です。');
}
JavaScriptではスライドショーやゲームの制限時間など、
一定の間隔ごとに何かをするタイマー処理が出来る。
setInterval() ・・・ 一定間隔で処理を繰り返すメソッドvar 変数名 = setInterval(実行する関数, 間隔);
タイマー識別用変数
間隔: ミリ秒(1秒 = 1000)で指定
clearInterval() ・・・ タイマーを止める為のメソッドclearInterval(タイマー識別用の変数);
// カウンターの初期値
var counter = 1;
// タイマー開始
var timer = setInterval(function () {
document.write('<p>' + counter + '秒経過</p>');
counter++;
}, 1000);
// カウンターの初期値
var counter = 1;
// タイマー開始
var timer = setInterval(function () {
document.write('<p>' + counter + '秒経過</p>');
// カウンターが 10 以上ならタイマーを止める
if (counter >= 10) {
clearInterval(timer);
}
counter++;
}, 1000);
一定の時間後に一度だけを処理を行うsetTimeout()というメソッドもある。
このsetTimeout()でも、setInterval()のように、
一定間隔ごとに処理をさせることも出来る。
setTimeout() ・・・ 一定時間後に一度だけ処理を行うメソッドvar 変数名 = setTimeout(実行する関数, 間隔);
タイマー識別用変数
間隔: ミリ秒(1秒 = 1000)で指定
clearTimeout() ・・・ setTimeout()を止める為のメソッドclearTimeout(タイマー識別用の変数);
// カウンターの初期値
var counter = 1;
// 一定時間後に処理する関数
function countUp() {
document.write('<p>' + counter + '秒たったよ</p>');
}
// タイマー開始
var timer = setTimeout(countUp, 1000);
setTimeout()メソッドで、countUp()関数の中で、setTimeout()を実行
// カウンターの初期値
var counter = 0;
// 一定時間後に処理する関数
function countUp() {
document.write('<p>' + counter + '秒たったよ</p>');
counter++;
// タイマー開始
var timer = setTimeout(countUp, 1000);
}
// 関数の呼び出し
countUp();
// カウンターの初期値
var counter = 0;
// 一定時間後に処理する関数
function countUp() {
document.write('<p>' + counter + '秒たったよ</p>');
counter++;
// タイマー開始
var timer = setTimeout(countUp, 1000);
// カウンターが 10 より大きければタイマーを止める
if (counter > 10) {
clearTimeout(timer);
}
}
// 関数の呼び出し
countUp();
「chapter06」 › 「training」フォルダ内の「index.html」を開き、
下記の問題を解いて下さい。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>練習問題6</title>
</head>
<body>
<script src="app.js"></script>
</body>
</html>
// カウンターの初期値
var counter = 1;
// タイマー開始
var timer = setInterval(function () {
// 文字格納用の変数
var char = '';
// 3 の倍数かをチェック
if (counter % 3 == 0) {
char = char + '(あほ)';
}
// 5 の倍数かをチェック
if (counter % 5 == 0) {
char = char + '(犬)';
}
// カウンターが 30 以下確認
if (counter <= 30) {
// 30 以下なら画面に出力
document.write(counter + char + '<br>');
} else {
// 30より大きければストップ
clearInterval(timer);
alert('オモロー');
}
counter++;
}, 1000);
解答例は全問題のチェックボックスが on になるとご覧いただけます。
独自関数は何度も使う一連の処理をを登録できる。
タイマー処理と組み合わせれば、一定間隔ごとに特定の処理をできる。
setInterval()setTimeout()