JavaScript 基礎Ⅱ
 制御構文
 for
 for in
 while
 do while
 switch case
 関数
 定義、呼び出し
 無名関数
 変数スコープ
 課題
for, while, switch case
 繰り返し処理を実行する
for (var i = 0; i < 5; i++) {
console.log("ここは 5 回実行される");
}
 配列を走査する
var arr = ["a", "b", "c", "d", "e", "f"];
var i, length = arr.length;
for (i = 0; i < length; i++) {
console.log("arr[" + i + "]: " + arr[i]);
}
 オブジェクトを走査する
 添字の自由度が高い Object は単純に走査できない
var obj = {
a: "apple",
b: "blue",
c: "cold"
};
for (var key in obj) {
console.log("obj[" + key + "]: " + obj[key]);
}
 for in はオブジェクトの全てのプロパティを走査する
 ときには不要なメソッドまで走査するのでそのままでは使え
ない
Object.prototype.hoge = "hogehoge";
var obj = {
a: "apple",
b: "blue",
c: "cold"
};
for (var key in obj) {
console.log("obj[" + key + "]: " + obj[key]);
}
 Object の hasOwnProperty メソッドを使ってオブジェクトに属して
いるプロパティとメソッドだけを列挙する
Object.prototype.hoge = "hogehoge";
var obj = {
a: "apple",
b: "blue",
c: "cold"
};
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
console.log("obj[" + key + "]: " + obj[key]);
}
}
 繰り返し処理を実行する
var count = 6;
while (count-- > 0) {
console.log("カウントダウン: " + count);
}
 少なくとも 1 度実行する繰り返し処理
var count = 5;
do {
console.log("カウントダウン: " + count);
} while (count-- > 0);
 複数の条件で処理を分岐する
var num = 3;
switch (num % 2) {
case 0:
console.log("num は偶数");
break;
case 1:
console.log("num は奇数");
break;
default:
console.log("num は数値ではない");
break;
}
一連の処理をまとめる
 よく使う処理はまとめると分かりやすい
// 配列を順番にブラウザのコンソールへ列挙する
function showArray(arr) {
var length = arr.length;
for (var i = 0; i < length; i++) {
console.log("[" + i + "]: " + arr[i]);
}
return length;
}
 宣言 (定義) した関数を使うときに呼び出す
var summer = [
"海", "花火", "避暑", "プール", "夏休み"
];
showArray(summer);
 引数: 関数へ渡す値
 返り値: 関数を実行した結果
// 宣言
function showArray(arr) { ...(略)
// 呼び出し
var length = showArray(summer);
関数名
関数名
引数
引数返り値
 名前の無い関数
 関数リテラル
var f = function (x, y) {
return [x, y]
};
var p = f(3, 2);
関数も値のように扱える!
 変数にはその変数が有効である範囲がある
 JavaScript では関数によってのみ、変数の有効範囲が決まる
var value = 0;
// 即時関数
(function () {
var value = 1;
console.log("inner: " + value);
})();
console.log("outer: " + value);
 変数スコープにはグローバルとローカルがある
 ローカルスコープの変数は var を使って宣言する
var value = 0;
(function () {
// var を取り払うと…
value = 1;
console.log("inner: " + value);
})();
console.log("outer: " + value);
 次のコードを読んで、コンソールを出力される値を考える
var value = 0;
(function () {
var value = 2;
(function () {
value = 1;
console.log("A: " + value);
})();
console.log("B: " + value);
})();
console.log("C: " + value);
 アンケート
 課題は後ほど…

前期講座09