メメメモモ

プログラミング、筋トレ、ゲーム、etc

javascriptメモ

よく必要となる処理のメモです。


配列制御

// 配列の初期化
var list = [1, 2, 3];
var list = new  Array();
var list = new Array(1, 2, 3);


// 配列同士の結合
var new_list = list1.concat(list2);


// 配列に要素を追加
list.push(1);
list.unshift(1);


// 配列から要素を取り出す
var a = list.pop();
var a = list.shift();


// join
var csv = list.join(',');


// 要素数
var length = list.length;


// 並び替え
var new_list = list.sort();


// map関数(jQuery)
var new_list = jQuery.map(list, function (a) { return a.toUpperCase(); });


// grep関数(jQuery)
var new_list = jQuery.grep(list, function (n) { return (n != 'a'); });

文字列操作

// 初期化
var str = "abcd";


// 文字列の長さ
var length = str.length;


// スプリット
var list = str.split(',');


// 大文字・小文字
var xx1 = str.toUpperCase();
var xx2 = str.toLowerCase();


/* 正規表現 */
// match
if ("ABCDEFG".match(/def/i)) {
   alert("Match");
}


// gオプション
var xx = "12:34:56".match(/\d+/g;);
xx[0]; // -> "12"
xx[1]; // -> "34"
xx[2]; // -> "56"


// 後方参照
var xx = "12:34:56".match(/(\d+):(\d+):(\d+)/);
RegExp.$1 // -> "12"
RegExp.$2 // -> "34"
RegExp.$3 // -> "56"

オブジェクト指向

コンストラクタの定義
// 引数なし
var Test = function() {};

// 引数あり
var Test = function(a) {
    this.a = a; 
};
メソッドの定義
Test.prototype.test1 = function() { alert('test'); };

Test.prototype.test2 = function(a) {
    alert(a);
};

Test.prototype.getA = function() {
    return this.a;
};



// JSON形式で

Test.prototype = {
    test1: function()   { alert('test'); },
    test2: function(a) { alert(a); },
    getA:  function()   { return this.a; }
};
クラス関数の定義
Test.show = function() {
     alert('show()');
};
クラスの利用
// インスタンス
var t = new Test('a');

// メソッド呼び出し
t.test1();


// クラス関数
Test.show();
クラスの継承
var Test = function() {};
Test.prototype.test = function() { alert('aaa'); };


var Test2 = function() {};
Test2.prototype = new Test();


var t = new Test2();
t.test();