マンガで分かるJavaScriptプログラミング講座メモ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[JavaScript]]
#norelated
#contents
//----------------------------------------
* 学習メモ [#ne586b62]
//----------------------------------------
マンガで分かる JavaScriptプログラミング講座
http://crocro.com/write/manga_javascript/wiki.cgi
//----------------------------------------
* 第3話:書いてみよう [#cf86a205]
//----------------------------------------
//----------------------------------------
**『<script>』タグ [#cab190f8]
『<script>~</script>』は、この範囲がプログラムという意味...
<script type="text/javascript">
<!--
alert("test");
// -->
</script>
//----------------------------------------
**『コメントアウト』 [#n73a3b0d]
書き方は以下の2種類です。
- 行の途中に『//』と書く 『//』の右側が無視される。
- 本文中に『/*~*/』と書く 『~』の部分が無視される。
//----------------------------------------
* 第4話:数値変数と計算 [#e3fc6b24]
//----------------------------------------
//----------------------------------------
** 変数の宣言 [#r4b71c72]
『var a = 3;』は
『[変数][a]は、[3]です([終わり])』 という意味になる
var 『これから変数を書く』という宣言
a 『変数の名前』
= 『左部分の中身は、右部分です』という記号
3 数字の3
; この式は終わり、以降は次の式ですという記号
これが『var a = 3;』の 意味になる
//----------------------------------------
** Mathオブジェクトのメソッド [#h1dd9b8c]
Math.ceil(n) 小数点以下を繰り上げ a = Math.ceil(1.55); ...
Math.floor(n) 小数点以下を繰り下げ a = Math.floor(1.55);...
Math.round(n) 小数点以下を四捨五入 a = Math.round(1.55);...
等
(参考)
http://www.tohoho-web.com/js/operator.htm
http://www.tohoho-web.com/js/math.htm
http://memopad.bitter.jp/w3c/jsref/jsref_obj_math.html
https://developer.mozilla.org/ja/docs/Web/JavaScript/Refe...
//----------------------------------------
* 第5話:文字列変数と様々な出力 [#sd77652a]
//----------------------------------------
//----------------------------------------
** 『alert』以外の 『文字列』 の表示方法 [#k89fb8af]
// Webページに文字列を表示
document.write("文字列1");
//----------------------------------------
**改行文字についての補足 [#o9ea4cb6]
- Windowsでは、普通のテキストファイルの改行は『\r\n』と2...
- Unix系のOSでは、テキストファイルの改行は『\n』と1文字に...
-『\r』は『キャリッジリターン』(carriage return)で、『...
-『\n』は『ニューライン』(newline)で、『改行』という意...
//----------------------------------------
** Stringオブジェクトのメソッド [#z211bf10]
.length 文字列の長さ a = "ABCDEF".length; 変数『a』に『6...
等
(参考)
http://www.tohoho-web.com/js/string.htm
http://memopad.bitter.jp/w3c/jsref/jsref_obj_string.html
https://developer.mozilla.org/ja/docs/Web/JavaScript/Refe...
//----------------------------------------
* 第6話:真と偽 条件分岐と演算子 [#k300b295]
//----------------------------------------
//----------------------------------------
**『if』文 [#v84b28d7]
『条件分岐』を行うための『if』文は、以下のように書きます。
if (/* 条件式 */) {
// Aの処理
} else {
// Bの処理
}
//----------------------------------------
**『switch』文 [#x5867b88]
条件分岐式には、『if』以外に、『switch』もあります。
var tensuu = 3;
switch (tensuu) {
case 1:
// 変数『tensuu』の数値が『1』の場合
alert("成績1番 おめでとう!");
break; // 処理終了
case 2:
// 変数『tensuu』の数値が『2』の場合
alert("成績2番 銀メダル!");
break; // 処理終了
case 3:
// 変数『tensuu』の数値が『3』の場合
alert("成績3番 銅メダル!");
break; // 処理終了
default:
// 変数『tensuu』の数値が『その他』の場合
alert("もっと頑張りましょう");
break; // 処理終了
}
//----------------------------------------
* 第7話:ループ処理 [#q705cfb6]
//----------------------------------------
//----------------------------------------
** 『for』文 [#wbf57872]
for (var i = 1; i <= 1000; i ++) {
document.writeln(i + "回目:桑立");
}
→ カウンターの「i」を「var i = 1;」で宣言して、用意してい...
//----------------------------------------
** ループ処理内での特殊な動作 [#bcddf12e]
ループ処理に慣れてくると、ある処理を無視したり、途中で終...
そういった時に使うのが、『break』『continue』『ラベル』と...
***『break』 [#y454155c]
『break』は、ループ処理を終了します。
for (var i = 0; i < 10; i ++) {
if (i == 7) {
// 変数『i』が『7』ならループを抜ける
document.write(i + "finish!<br>");
break;
}
document.write(i + "<br>");
}
***『continue』 [#o386790b]
『continue』は、ループ処理をスキップして、『for (~)』の...
for (var i = 0; i < 10; i ++) { // *1
if (i == 7) {
// 変数『i』が『7』なら、
// 『*2』以下を処理せず『*1』に戻る。
document.write("skip!<br>");
continue;
}
// *2
document.write(i + "<br>");
}
***『ラベル』 [#n77f5e1a]
『ラベル』は、少し複雑です。『ラベル』は、『break』や『co...
『for』文が入れ子になっている場合、『break』や『continue...
// 『*1』の『for』文に
// 『outer』という『ラベル』を付ける
outer:
for (var i = 0; i < 10; i ++) { // *1
for (var j = 0; j < 10; j ++) { // *2
if (j == 7) {
// 変数『j』が『7』なら
// 『outer』という『ラベル』が付いた
// 『*1』のループを抜ける
document.write(i + "-" + j + "finish!<br>");
break outer;
}
document.write(i + "-" + j + ", ");
}
}
『outer』という『ラベル』で指定した『for』文を『break』の...
そのために、内部の『for』文であるにも関わらず、『finish!...
さて、この『ラベル』ですが、『ラベル』の末尾は『;』(セミ...
慣れない内は、よく間違えます。
→「ラベル」ってのは便利だな! 複雑な制御が必要なときに、...
**『while』『do while』 [#k5d39831]
『for』以外に、『while』『do while』という『ループ文』も...
これらの『ループ文』は、『for』文から『変数の初期化』と『...
var i = 0;
while (i < 10) {
document.write(i + ",");
i ++;
}
var i = 0;
do {
document.write(i + ",");
i ++;
} while (i < 10);
→ 無限ループに注意! 終了条件を間違えないこと。
//----------------------------------------
* 第8話:配列 [#v30109a7]
//----------------------------------------
//----------------------------------------
**『配列』の様々な作り方 [#e5707a04]
『配列』は、以下のようにして作れます。
- new演算子
var nameArray = new Array(3);
nameArray[0] = "足立";
nameArray[1] = "安藤";
nameArray[2] = "内木";
→配列に、「キー」と「値」を1個ずつセットしていく方法。
- コンストラクター
var nameArray = new Array("足立","安藤","内木");
→new演算子でオブジェクトを作るときに、コンストラクターに...
- リスト
var nameArray = ["足立","安藤","内木"];
→配列のリテラル[ ]に初期値をセットして、リスト(配列)を...
- 文字列の分割
var name = "足立,安藤,内木";
var nameArray = name.split(","); // 『,』で分割して配...
→Stringオブジェクトのsplit()メソッドで、リスト(配列)を...
//----------------------------------------
** 『連想配列』(ハッシュ)の作り方 [#m99995c5]
『連想配列』(ハッシュ)は、以下のようにして作ります。
→連想配列=キー(要素を参照するためのポインター)に数字で...
- new演算子
var tensuuHash = new Array();
tensuuHash["足立"] = 65;
tensuuHash["安藤"] = 78;
tensuuHash["内木"] = 87;
- 連想配列のリテラル
var tensuuHash = {"足立" : 65 ,"安藤" : 78 ,"内木" : 87};
→連想配列のリテラル{キー:値, …}に初期値をセットして、連想...
//----------------------------------------
** Arrayオブジェクトのメソッド [#c9116cc5]
>var a = ["aa","bb"];
.length 配列の要素の個数 x = a.length; 変数『x』に『2』...
(参考)
http://www.tohoho-web.com/js/array.htm
http://memopad.bitter.jp/w3c/jsref/jsref_obj_array.html
https://developer.mozilla.org/ja/docs/Web/JavaScript/Refe...
//----------------------------------------
* 第9話:連想配列のループ処理 [#heffa0a2]
//----------------------------------------
『連想配列』は、『.length』で要素の数を知ることはできませ...
また、数字の添え字を使って要素にアクセスすることもできま...
『連想配列』の各要素をループ処理で利用する際には、『for』...
//----------------------------------------
** 『for in』文 [#pc16ffe9]
『for in』文では、『for (~)』の括弧内の書き方が『for』文...
- 以下は、『for』文です。
for (変数の初期化; 継続条件; 変数の増減) {
// ループ処理(何度も実行する処理)
}
- 以下は、『for in』文です。
for (キーを取得する変数 in 連想配列の変数) {
// ループ処理(何度も実行する処理)
}
『for in』文では、『for (~)』の括弧内で、『連想配列の変...
この『キー』を取得する変数には、ループが1回行われるごとに...
ループ処理の中では、この『キー』を利用して、連想配列の各...
そして、全ての『キー』を処理し終えたあとに、ループを抜け...
//----------------------------------------
* 第10話:関数 [#h33cafcb]
//----------------------------------------
『関数』は、何度も行う処理を、一度だけ書いて済ませるプロ...
この方法を使えば、プログラムをいくつかの部品に分けて、組...
//----------------------------------------
** 『関数』の基本 [#me17558b]
『関数』は、以下の方法で作れます。
function 関数名(引数) {
内部処理
return 戻り値;
}
//----------------------------------------
** 『関数』の利用 [#d60590a2]
作成した『関数』は、以下のように利用できます。
var kekka = han(16);
//----------------------------------------
**『再帰関数』 [#h6704f5f]
『再帰関数』とは、『関数』から『それ自身を呼び出す』関数...
// 再帰関数を呼び出し
saiki(0, 12);
// 再帰関数
function saiki(no, max) {
// 『no』(再帰回数)を引数1として取得
// 『max』(終了条件の値)を引数2として取得
// 終了条件を満たせば終了
if (no >= max) return;
// グラフの作成
var str = "";
for (var i = 0; i < no; i ++) {
for (var j = 0; j <= i; j ++) {
str += "+";
}
}
document.write(str + no + "<br>");
// 再び自分自身を呼び出す
saiki(no + 1, max);
}
//----------------------------------------
* 第11話:変数のスコープ [#ydfdbca6]
//----------------------------------------
「スコープ」(scope)=変数が有効な「範囲」のこと。
JavaScriptのプログラムでは、『関数』の内側の領域は、外側...
『関数』の外側の通常の場所を『グローバル』と呼び、『関数...
『グローバル』で宣言された変数を『グローバル変数』、『ロ...
【グローバルな領域】
var globalVar = 1; // グローバル変数
function kansuu() {
【ローカルな領域】
var loclalVar = 0; // ローカル変数
}
【グローバルな領域】
var globalVar2 = 2; // グローバル変数
(参考)
[[スコープ - Wikipedia>http://ja.wikipedia.org/wiki/%E3%8...
>プログラミングでのスコープとは、ある変数や関数が特定の名...
//----------------------------------------
* 第12話:型、オブジェクト、クラス [#f5d0de06]
//----------------------------------------
//----------------------------------------
**『型』 [#lc6ba5e9]
変数の種類のことを『型』と言います。
変数の『型』は、『typeof』関数を使って調べることができま...
var no = 0; // 『数値変数』を初期化
var str = "文字列"; // 『文字列変数』を初期化
// 『typeof』関数で、変数の『型』を調べる
alert(typeof(no)); // 『number』(数)と表示
alert(typeof(str)); // 『string』(文字)と表示
//----------------------------------------
**『オブジェクト』 [#m8a2bb02]
『オブジェクト』型の変数は、内部に変数や関数を保持してい...
『オブジェクト』型変数内の変数や関数は、『オブジェクト.変...
object.variable; // 『オブジェクト』型変数内の変数を...
object.function(); // 『オブジェクト』型変数内の関数を...
&ref(fig_1.gif);
→クラスベースか、プロトタイプベースか、とかの仕組みの話を...
- プロパティー → オブジェクト内の変数(データ)
- メソッド → オブジェクト内の関数(処理)
つまり、
- データに処理がくっついたもの=オブジェクト
- 処理にデータがくっついたもの=クロージャー
そんだけの話?
下記の『document』は、Webページ内でJavaScriptを利用する際...
他にも、『window』などのオブジェクトが、用意されています。
document.title; // 『document』オブジェクトの『title...
document.write(""); // 『document』オブジェクトの『write...
documentオブジェクトには、最初から『title』変数や、『writ...
//----------------------------------------
**『連想配列』と『オブジェクト』 [#j719b574]
&color(red){『連想配列』と『オブジェクト』は同じものです...
→何気に、これ重要な説明だな!!!(JSの特徴)
-『連想配列』として作成した変数は、『オブジェクト』として...
-『オブジェクト』として作成した変数も『連想配列』として扱...
var tensuuArray = {
"足立" : 65,
"安藤" : 78,
"木村" : 43
};
alert(tensuuArray.足立); // 『65』と表示
本来は『tensuuArray["足立"]』と書くべきところを『tensuuAr...
書き方を変えても、正しく値を参照できます。
『オブジェクト』を『連想配列』として、『for in』文で処理...
以下の例では、『document』オブジェクトを『連想配列』とし...
var str = "";
for (var key in document) {
str += "キーが " + key
+ " : 型が " + typeof(document[key])
+ " : 値が " + document[key]
+ "<br>"; // 改行タグ
}
document.write(str);
//----------------------------------------
**『メソッド』 [#a40f8317]
プロパティの中でも、関数は特別に『メソッド』と呼びます。
&ref(fig_2.gif);
//----------------------------------------
**『クラス』 [#z9a91363]
//----------------------------------------
***『function』型の変数 [#e622d1d6]
変数の『型』には『function』型と呼ばれるものがあります。
これは、『関数』を変数として格納したものです。
&color(red){JavaScriptでは、『関数』も数値や文字列と同じ...
→ これがJavaScriptのコードが、他の言語と比べて、読みにく...
→ 「見た目が変数でも、中身は関数」って場合があるから、変...
以下、『関数』を変数に入れて利用する例を示します。
// 関数を作成
var func = function () {
alert("関数を変数にしたよ!");
};
// 関数を実行
func(); // 変数の後に『()』を付けて実行
&color(red){変数の中身に、関数が入っている場合のみ、変数...
これが、自分にとっての罠、分かりにくかった点だな!!!
JavaScriptのFunction型変数の正体を見破ったり!!!
次からは、騙されへんで~www
// 配列に関数を入れて実行
var aArray = new Array(1);
aArray[0] = func;
aArray[0](); // 配列の後に『()』を付けて実行
// 『連想配列』に関数を入れて
// プロパティとして実行
aArray["rensou"] = func;
aArray.rensou(); // プロパティの後に『()』を付けて実行
3種類示しましたが、いずれもきちんとダイアログが表示されま...
//----------------------------------------
***『無名関数』 [#yd932a8a]
『function () {~}』のように、『function』の後に名前がな...
JavaScriptでは、ある程度以上に高度なプログラムを書き始め...
そのため、こういった&color(red){「名前のない関数」がある...
- 有名関数 function ''hoge''() { } → ()の前に、関数名が入...
- 無名関数 function () { } → ()の前に、関数名が入ってない...
よーく、覚えておこう!
//----------------------------------------
*** クラス [#xa783d8f]
『function』型変数を使って、『クラス』と呼ばれるものを作...
// 生徒クラスを作成
var Seito = function(namae, tensuu) {
this.namae = namae || "???";
this.tensuu = tensuu || 0;
this.show = function() {
window.alert("名前 : " + this.namae
+ " / 点数 : " + this.tensuu);
};
};
『this』という文字の意味は、ここでは『クラス』自体を現す...
// 生徒クラスを使って『生徒 遊』変数を作成
var sYuu = new Seito("遊", 3);
alert(sYuu.namae + " " + sYuu.tensuu);
sYuu.show();
こんなかんじで、クラスが作れると。
上記の例は、動的クラスの作り方ですね。
(参考)
JavaScriptでの静的クラスと動的クラスの作り方 - Qiita
http://qiita.com/candyrobot/items/1b99a577e1d58e2d7d4f
【javascript】やさしいクラスの作り方 - Qiita
http://qiita.com/varmil/items/99fd6f2a886fdde4b7fa
JavaScriptの(「オブジェクト」じゃなくて)「クラス」もど...
- プロトタイプベース
- クラスベース
-- 静的クラス
-- 動的クラス
javaScriptの作法では、Javaっぽい「クラスベース」な書き方...
//----------------------------------------
*** this [#u030bcbc]
クラスを作る際に、『this』という、これまで説明していない...
この『this』は、オブジェクト自身を表す特殊な変数です。
//----------------------------------------
***関数内の『this』 [#e863960e]
次は関数内の『this』です。
関数内であれば、『this』は、関数が呼び出された際に、その...
// 生徒クラスを作成
var Seito = function(namae, tensuu) {
this.namae = namae || "???";
this.tensuu = tensuu || 0;
this.show = function() {
alert("名前 : " + this.namae
+ " / 点数 : " + this.tensuu);
};
}
// 生徒クラスを使って『生徒 遊』変数を作成
var sYuu = new Seito("遊", 3);
sYuu.show();
//----------------------------------------
* 読了 [#q6ccbd0e]
//----------------------------------------
そういや、JavaScriptって、こういう言語だったよなー。
もうちょい、細かいところまで、勉強を進めてみよう。
JSのコードが、すらすらと書けるようになれたらいいな!
終了行:
[[JavaScript]]
#norelated
#contents
//----------------------------------------
* 学習メモ [#ne586b62]
//----------------------------------------
マンガで分かる JavaScriptプログラミング講座
http://crocro.com/write/manga_javascript/wiki.cgi
//----------------------------------------
* 第3話:書いてみよう [#cf86a205]
//----------------------------------------
//----------------------------------------
**『<script>』タグ [#cab190f8]
『<script>~</script>』は、この範囲がプログラムという意味...
<script type="text/javascript">
<!--
alert("test");
// -->
</script>
//----------------------------------------
**『コメントアウト』 [#n73a3b0d]
書き方は以下の2種類です。
- 行の途中に『//』と書く 『//』の右側が無視される。
- 本文中に『/*~*/』と書く 『~』の部分が無視される。
//----------------------------------------
* 第4話:数値変数と計算 [#e3fc6b24]
//----------------------------------------
//----------------------------------------
** 変数の宣言 [#r4b71c72]
『var a = 3;』は
『[変数][a]は、[3]です([終わり])』 という意味になる
var 『これから変数を書く』という宣言
a 『変数の名前』
= 『左部分の中身は、右部分です』という記号
3 数字の3
; この式は終わり、以降は次の式ですという記号
これが『var a = 3;』の 意味になる
//----------------------------------------
** Mathオブジェクトのメソッド [#h1dd9b8c]
Math.ceil(n) 小数点以下を繰り上げ a = Math.ceil(1.55); ...
Math.floor(n) 小数点以下を繰り下げ a = Math.floor(1.55);...
Math.round(n) 小数点以下を四捨五入 a = Math.round(1.55);...
等
(参考)
http://www.tohoho-web.com/js/operator.htm
http://www.tohoho-web.com/js/math.htm
http://memopad.bitter.jp/w3c/jsref/jsref_obj_math.html
https://developer.mozilla.org/ja/docs/Web/JavaScript/Refe...
//----------------------------------------
* 第5話:文字列変数と様々な出力 [#sd77652a]
//----------------------------------------
//----------------------------------------
** 『alert』以外の 『文字列』 の表示方法 [#k89fb8af]
// Webページに文字列を表示
document.write("文字列1");
//----------------------------------------
**改行文字についての補足 [#o9ea4cb6]
- Windowsでは、普通のテキストファイルの改行は『\r\n』と2...
- Unix系のOSでは、テキストファイルの改行は『\n』と1文字に...
-『\r』は『キャリッジリターン』(carriage return)で、『...
-『\n』は『ニューライン』(newline)で、『改行』という意...
//----------------------------------------
** Stringオブジェクトのメソッド [#z211bf10]
.length 文字列の長さ a = "ABCDEF".length; 変数『a』に『6...
等
(参考)
http://www.tohoho-web.com/js/string.htm
http://memopad.bitter.jp/w3c/jsref/jsref_obj_string.html
https://developer.mozilla.org/ja/docs/Web/JavaScript/Refe...
//----------------------------------------
* 第6話:真と偽 条件分岐と演算子 [#k300b295]
//----------------------------------------
//----------------------------------------
**『if』文 [#v84b28d7]
『条件分岐』を行うための『if』文は、以下のように書きます。
if (/* 条件式 */) {
// Aの処理
} else {
// Bの処理
}
//----------------------------------------
**『switch』文 [#x5867b88]
条件分岐式には、『if』以外に、『switch』もあります。
var tensuu = 3;
switch (tensuu) {
case 1:
// 変数『tensuu』の数値が『1』の場合
alert("成績1番 おめでとう!");
break; // 処理終了
case 2:
// 変数『tensuu』の数値が『2』の場合
alert("成績2番 銀メダル!");
break; // 処理終了
case 3:
// 変数『tensuu』の数値が『3』の場合
alert("成績3番 銅メダル!");
break; // 処理終了
default:
// 変数『tensuu』の数値が『その他』の場合
alert("もっと頑張りましょう");
break; // 処理終了
}
//----------------------------------------
* 第7話:ループ処理 [#q705cfb6]
//----------------------------------------
//----------------------------------------
** 『for』文 [#wbf57872]
for (var i = 1; i <= 1000; i ++) {
document.writeln(i + "回目:桑立");
}
→ カウンターの「i」を「var i = 1;」で宣言して、用意してい...
//----------------------------------------
** ループ処理内での特殊な動作 [#bcddf12e]
ループ処理に慣れてくると、ある処理を無視したり、途中で終...
そういった時に使うのが、『break』『continue』『ラベル』と...
***『break』 [#y454155c]
『break』は、ループ処理を終了します。
for (var i = 0; i < 10; i ++) {
if (i == 7) {
// 変数『i』が『7』ならループを抜ける
document.write(i + "finish!<br>");
break;
}
document.write(i + "<br>");
}
***『continue』 [#o386790b]
『continue』は、ループ処理をスキップして、『for (~)』の...
for (var i = 0; i < 10; i ++) { // *1
if (i == 7) {
// 変数『i』が『7』なら、
// 『*2』以下を処理せず『*1』に戻る。
document.write("skip!<br>");
continue;
}
// *2
document.write(i + "<br>");
}
***『ラベル』 [#n77f5e1a]
『ラベル』は、少し複雑です。『ラベル』は、『break』や『co...
『for』文が入れ子になっている場合、『break』や『continue...
// 『*1』の『for』文に
// 『outer』という『ラベル』を付ける
outer:
for (var i = 0; i < 10; i ++) { // *1
for (var j = 0; j < 10; j ++) { // *2
if (j == 7) {
// 変数『j』が『7』なら
// 『outer』という『ラベル』が付いた
// 『*1』のループを抜ける
document.write(i + "-" + j + "finish!<br>");
break outer;
}
document.write(i + "-" + j + ", ");
}
}
『outer』という『ラベル』で指定した『for』文を『break』の...
そのために、内部の『for』文であるにも関わらず、『finish!...
さて、この『ラベル』ですが、『ラベル』の末尾は『;』(セミ...
慣れない内は、よく間違えます。
→「ラベル」ってのは便利だな! 複雑な制御が必要なときに、...
**『while』『do while』 [#k5d39831]
『for』以外に、『while』『do while』という『ループ文』も...
これらの『ループ文』は、『for』文から『変数の初期化』と『...
var i = 0;
while (i < 10) {
document.write(i + ",");
i ++;
}
var i = 0;
do {
document.write(i + ",");
i ++;
} while (i < 10);
→ 無限ループに注意! 終了条件を間違えないこと。
//----------------------------------------
* 第8話:配列 [#v30109a7]
//----------------------------------------
//----------------------------------------
**『配列』の様々な作り方 [#e5707a04]
『配列』は、以下のようにして作れます。
- new演算子
var nameArray = new Array(3);
nameArray[0] = "足立";
nameArray[1] = "安藤";
nameArray[2] = "内木";
→配列に、「キー」と「値」を1個ずつセットしていく方法。
- コンストラクター
var nameArray = new Array("足立","安藤","内木");
→new演算子でオブジェクトを作るときに、コンストラクターに...
- リスト
var nameArray = ["足立","安藤","内木"];
→配列のリテラル[ ]に初期値をセットして、リスト(配列)を...
- 文字列の分割
var name = "足立,安藤,内木";
var nameArray = name.split(","); // 『,』で分割して配...
→Stringオブジェクトのsplit()メソッドで、リスト(配列)を...
//----------------------------------------
** 『連想配列』(ハッシュ)の作り方 [#m99995c5]
『連想配列』(ハッシュ)は、以下のようにして作ります。
→連想配列=キー(要素を参照するためのポインター)に数字で...
- new演算子
var tensuuHash = new Array();
tensuuHash["足立"] = 65;
tensuuHash["安藤"] = 78;
tensuuHash["内木"] = 87;
- 連想配列のリテラル
var tensuuHash = {"足立" : 65 ,"安藤" : 78 ,"内木" : 87};
→連想配列のリテラル{キー:値, …}に初期値をセットして、連想...
//----------------------------------------
** Arrayオブジェクトのメソッド [#c9116cc5]
>var a = ["aa","bb"];
.length 配列の要素の個数 x = a.length; 変数『x』に『2』...
(参考)
http://www.tohoho-web.com/js/array.htm
http://memopad.bitter.jp/w3c/jsref/jsref_obj_array.html
https://developer.mozilla.org/ja/docs/Web/JavaScript/Refe...
//----------------------------------------
* 第9話:連想配列のループ処理 [#heffa0a2]
//----------------------------------------
『連想配列』は、『.length』で要素の数を知ることはできませ...
また、数字の添え字を使って要素にアクセスすることもできま...
『連想配列』の各要素をループ処理で利用する際には、『for』...
//----------------------------------------
** 『for in』文 [#pc16ffe9]
『for in』文では、『for (~)』の括弧内の書き方が『for』文...
- 以下は、『for』文です。
for (変数の初期化; 継続条件; 変数の増減) {
// ループ処理(何度も実行する処理)
}
- 以下は、『for in』文です。
for (キーを取得する変数 in 連想配列の変数) {
// ループ処理(何度も実行する処理)
}
『for in』文では、『for (~)』の括弧内で、『連想配列の変...
この『キー』を取得する変数には、ループが1回行われるごとに...
ループ処理の中では、この『キー』を利用して、連想配列の各...
そして、全ての『キー』を処理し終えたあとに、ループを抜け...
//----------------------------------------
* 第10話:関数 [#h33cafcb]
//----------------------------------------
『関数』は、何度も行う処理を、一度だけ書いて済ませるプロ...
この方法を使えば、プログラムをいくつかの部品に分けて、組...
//----------------------------------------
** 『関数』の基本 [#me17558b]
『関数』は、以下の方法で作れます。
function 関数名(引数) {
内部処理
return 戻り値;
}
//----------------------------------------
** 『関数』の利用 [#d60590a2]
作成した『関数』は、以下のように利用できます。
var kekka = han(16);
//----------------------------------------
**『再帰関数』 [#h6704f5f]
『再帰関数』とは、『関数』から『それ自身を呼び出す』関数...
// 再帰関数を呼び出し
saiki(0, 12);
// 再帰関数
function saiki(no, max) {
// 『no』(再帰回数)を引数1として取得
// 『max』(終了条件の値)を引数2として取得
// 終了条件を満たせば終了
if (no >= max) return;
// グラフの作成
var str = "";
for (var i = 0; i < no; i ++) {
for (var j = 0; j <= i; j ++) {
str += "+";
}
}
document.write(str + no + "<br>");
// 再び自分自身を呼び出す
saiki(no + 1, max);
}
//----------------------------------------
* 第11話:変数のスコープ [#ydfdbca6]
//----------------------------------------
「スコープ」(scope)=変数が有効な「範囲」のこと。
JavaScriptのプログラムでは、『関数』の内側の領域は、外側...
『関数』の外側の通常の場所を『グローバル』と呼び、『関数...
『グローバル』で宣言された変数を『グローバル変数』、『ロ...
【グローバルな領域】
var globalVar = 1; // グローバル変数
function kansuu() {
【ローカルな領域】
var loclalVar = 0; // ローカル変数
}
【グローバルな領域】
var globalVar2 = 2; // グローバル変数
(参考)
[[スコープ - Wikipedia>http://ja.wikipedia.org/wiki/%E3%8...
>プログラミングでのスコープとは、ある変数や関数が特定の名...
//----------------------------------------
* 第12話:型、オブジェクト、クラス [#f5d0de06]
//----------------------------------------
//----------------------------------------
**『型』 [#lc6ba5e9]
変数の種類のことを『型』と言います。
変数の『型』は、『typeof』関数を使って調べることができま...
var no = 0; // 『数値変数』を初期化
var str = "文字列"; // 『文字列変数』を初期化
// 『typeof』関数で、変数の『型』を調べる
alert(typeof(no)); // 『number』(数)と表示
alert(typeof(str)); // 『string』(文字)と表示
//----------------------------------------
**『オブジェクト』 [#m8a2bb02]
『オブジェクト』型の変数は、内部に変数や関数を保持してい...
『オブジェクト』型変数内の変数や関数は、『オブジェクト.変...
object.variable; // 『オブジェクト』型変数内の変数を...
object.function(); // 『オブジェクト』型変数内の関数を...
&ref(fig_1.gif);
→クラスベースか、プロトタイプベースか、とかの仕組みの話を...
- プロパティー → オブジェクト内の変数(データ)
- メソッド → オブジェクト内の関数(処理)
つまり、
- データに処理がくっついたもの=オブジェクト
- 処理にデータがくっついたもの=クロージャー
そんだけの話?
下記の『document』は、Webページ内でJavaScriptを利用する際...
他にも、『window』などのオブジェクトが、用意されています。
document.title; // 『document』オブジェクトの『title...
document.write(""); // 『document』オブジェクトの『write...
documentオブジェクトには、最初から『title』変数や、『writ...
//----------------------------------------
**『連想配列』と『オブジェクト』 [#j719b574]
&color(red){『連想配列』と『オブジェクト』は同じものです...
→何気に、これ重要な説明だな!!!(JSの特徴)
-『連想配列』として作成した変数は、『オブジェクト』として...
-『オブジェクト』として作成した変数も『連想配列』として扱...
var tensuuArray = {
"足立" : 65,
"安藤" : 78,
"木村" : 43
};
alert(tensuuArray.足立); // 『65』と表示
本来は『tensuuArray["足立"]』と書くべきところを『tensuuAr...
書き方を変えても、正しく値を参照できます。
『オブジェクト』を『連想配列』として、『for in』文で処理...
以下の例では、『document』オブジェクトを『連想配列』とし...
var str = "";
for (var key in document) {
str += "キーが " + key
+ " : 型が " + typeof(document[key])
+ " : 値が " + document[key]
+ "<br>"; // 改行タグ
}
document.write(str);
//----------------------------------------
**『メソッド』 [#a40f8317]
プロパティの中でも、関数は特別に『メソッド』と呼びます。
&ref(fig_2.gif);
//----------------------------------------
**『クラス』 [#z9a91363]
//----------------------------------------
***『function』型の変数 [#e622d1d6]
変数の『型』には『function』型と呼ばれるものがあります。
これは、『関数』を変数として格納したものです。
&color(red){JavaScriptでは、『関数』も数値や文字列と同じ...
→ これがJavaScriptのコードが、他の言語と比べて、読みにく...
→ 「見た目が変数でも、中身は関数」って場合があるから、変...
以下、『関数』を変数に入れて利用する例を示します。
// 関数を作成
var func = function () {
alert("関数を変数にしたよ!");
};
// 関数を実行
func(); // 変数の後に『()』を付けて実行
&color(red){変数の中身に、関数が入っている場合のみ、変数...
これが、自分にとっての罠、分かりにくかった点だな!!!
JavaScriptのFunction型変数の正体を見破ったり!!!
次からは、騙されへんで~www
// 配列に関数を入れて実行
var aArray = new Array(1);
aArray[0] = func;
aArray[0](); // 配列の後に『()』を付けて実行
// 『連想配列』に関数を入れて
// プロパティとして実行
aArray["rensou"] = func;
aArray.rensou(); // プロパティの後に『()』を付けて実行
3種類示しましたが、いずれもきちんとダイアログが表示されま...
//----------------------------------------
***『無名関数』 [#yd932a8a]
『function () {~}』のように、『function』の後に名前がな...
JavaScriptでは、ある程度以上に高度なプログラムを書き始め...
そのため、こういった&color(red){「名前のない関数」がある...
- 有名関数 function ''hoge''() { } → ()の前に、関数名が入...
- 無名関数 function () { } → ()の前に、関数名が入ってない...
よーく、覚えておこう!
//----------------------------------------
*** クラス [#xa783d8f]
『function』型変数を使って、『クラス』と呼ばれるものを作...
// 生徒クラスを作成
var Seito = function(namae, tensuu) {
this.namae = namae || "???";
this.tensuu = tensuu || 0;
this.show = function() {
window.alert("名前 : " + this.namae
+ " / 点数 : " + this.tensuu);
};
};
『this』という文字の意味は、ここでは『クラス』自体を現す...
// 生徒クラスを使って『生徒 遊』変数を作成
var sYuu = new Seito("遊", 3);
alert(sYuu.namae + " " + sYuu.tensuu);
sYuu.show();
こんなかんじで、クラスが作れると。
上記の例は、動的クラスの作り方ですね。
(参考)
JavaScriptでの静的クラスと動的クラスの作り方 - Qiita
http://qiita.com/candyrobot/items/1b99a577e1d58e2d7d4f
【javascript】やさしいクラスの作り方 - Qiita
http://qiita.com/varmil/items/99fd6f2a886fdde4b7fa
JavaScriptの(「オブジェクト」じゃなくて)「クラス」もど...
- プロトタイプベース
- クラスベース
-- 静的クラス
-- 動的クラス
javaScriptの作法では、Javaっぽい「クラスベース」な書き方...
//----------------------------------------
*** this [#u030bcbc]
クラスを作る際に、『this』という、これまで説明していない...
この『this』は、オブジェクト自身を表す特殊な変数です。
//----------------------------------------
***関数内の『this』 [#e863960e]
次は関数内の『this』です。
関数内であれば、『this』は、関数が呼び出された際に、その...
// 生徒クラスを作成
var Seito = function(namae, tensuu) {
this.namae = namae || "???";
this.tensuu = tensuu || 0;
this.show = function() {
alert("名前 : " + this.namae
+ " / 点数 : " + this.tensuu);
};
}
// 生徒クラスを使って『生徒 遊』変数を作成
var sYuu = new Seito("遊", 3);
sYuu.show();
//----------------------------------------
* 読了 [#q6ccbd0e]
//----------------------------------------
そういや、JavaScriptって、こういう言語だったよなー。
もうちょい、細かいところまで、勉強を進めてみよう。
JSのコードが、すらすらと書けるようになれたらいいな!
ページ名: