-
-
Save shinsuke79/80f36784fc0598aa6123 to your computer and use it in GitHub Desktop.
javascriptのまとめ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 基本型: number,boolean,string | |
// 参照型: object,array,function | |
/** | |
* jsによるオブジェクト指向には、 | |
* ・オブジェクトリテラルを使った方法 | |
* ・コンストラクタ関数を使った方法 | |
* がある。 | |
*/ | |
// =============================================================== | |
/***** 1.コンストラクタ関数を使った方法 *****/ | |
// コンストラクタ | |
function People(name, age){ | |
this.name = name; | |
this.age = age; | |
} | |
// クラス変数を登録 | |
People.kind = "人間"; | |
// クラスメソッド | |
People.getSex = function(){ | |
return ["man","woman"]; | |
}; | |
// インスタンスメソッド | |
People.prototype.toString = function(){ | |
return this.name + str(this.age); | |
}; | |
// 継承クラス | |
function Student(id,name,age){ | |
this.constructor(name, age); | |
this.id = id; | |
} | |
// 継承関係の登録 | |
Student.prototype = new People(); | |
// オブジェクトの生成 | |
var people1 = new People("たいぞう",20); | |
var people2 = new People("こうた",35); | |
var student = new Student("11t0033","米長慎介",24); | |
// =============================================================== | |
/**** コンストラクタ関数を使った派生版 ****/ | |
function People(name, age){ | |
var self = this; // 仮想プライベートメソッドで使うthis | |
this.name = name; | |
this.age = age; | |
this.hello = function(){ | |
return "hello, I am"+this.name; | |
}; | |
// 仮想的なプライベートメソッド | |
var fuck = function(){ | |
return "fuck you!!!"; | |
}; | |
} | |
/** コンストラクタは持てないけどリテラルオブジェクトを使った方法 **/ | |
var People = { | |
name: "よね", | |
age:10, | |
hello: function(){ | |
return "hello, I am"+this.name; | |
} | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** ========== for文 ========== **/ | |
/** for文 **/ | |
for(var i=0;i<10;i++){ // for(var i=0,j=0;i<10;i++,j--)みたいなことも可能 | |
// 処理 break, continue | |
} | |
/** valueを走査 **/ | |
for each(var value in obj){ | |
// 処理 break, continue | |
} | |
/** keyを走査 **/ | |
for(var key in obj){ | |
// 処理 break, continue | |
} | |
/** ========== while文 ========== **/ | |
while("条件"){ // 一行なら中括弧省略可 | |
// 処理 break,continue | |
} | |
do{ | |
// 処理 break, continue | |
}while ("条件式"); | |
label: while(true){ // for文も同じ | |
// 処理 | |
break label; | |
} | |
/** ========== if文 ========== **/ | |
if("条件"){ | |
// 処理 | |
}else if("条件"){ | |
// 処理 | |
}else{ | |
// 処理 | |
} | |
/** ========== 真偽表 ========== **/ | |
true_false = { | |
false: [0, "", null, undefined, NaN], | |
true : ["0以外の数値", "''以外の文字", "null以外のオブジェクト"] | |
//ちなみにnullはオブジェクトでundefinedはundefinedらしい | |
} | |
/** ========== switch文 ========== **/ | |
switch("式"){ | |
case "値1": | |
case "値2": | |
// 値1と2に対する処理 | |
case "値3": | |
// 値1,2,3に対する処理 | |
break; | |
case "値4": | |
// 値4に対する処理 | |
break; | |
default: | |
// その他の処理 | |
} | |
/** ========== 配列 ========== **/ | |
// まぁ普通 | |
ary = [1,2,3]; | |
// 多次元配列 | |
ary = [[1,2,3], | |
[4,5,6], | |
[7,8,9] | |
]; | |
ary.length(); // 長さ | |
ary.toString(); // 文字列化 | |
ary.join(":"); // 指定された文字列で連結した文字列 | |
ary.sort(function(var1,var2){}); // 引数なしもOK | |
ary.slice(1,2); // スライサー(引数一つなら末尾まで) | |
/** ========== オブジェクト ========== **/ | |
obj = { | |
hello: "こんにちは", | |
fuck: "ファック", | |
hoge:function(){ | |
// 処理 | |
} | |
}; | |
obj.hello; // こう使えばオブジェクトだし | |
obj["hello"]; // こう使えばハッシュ | |
delete obj.hello; // これで要素削除 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** ========== グローバル関数 ========== **/ | |
parseInt("111"); // intに変換.第二引数は基数 | |
parseFloat("12.0"); // floatに変換 | |
isNaN(10/0); // 値がNaNかチェック | |
isFinite(Infinity); // 有限値ならtrue. -Infinityってのもある | |
Date(); // 現在の日付の文字列 | |
/** ========== Date ========== **/ | |
new Date(); // 現在の日付と時刻 | |
new Date(ms); // 引数一つならmsで判断 | |
new Date(str); // 文字列一つならアナライズ | |
new Date(year, month[, day, hour, min, sec, ms]); // 2つ以上ならそれぞれ指定 | |
// yearはそのまま、月は0~11, 日は1~31, 時は0~23, 分秒は0~59, ミリ秒は0~999 | |
date.toString(); // すべて文字列化 | |
date.toDateString(); // 日付のみ文字列化 | |
date.toTimeString(); // 時刻のみ文字列化 | |
// toLocaleString / toLocaleDateString / toLocaleTimeStringはローカライズされた文字列 | |
date.toUTCString(); // その時刻でのUTC時間を返す | |
date.valueOf(); // ミリ秒に変換 | |
Date.parse("2009/08/11 08:14:45"); // 文字列からDateオブジェクト生成 | |
// 各時間を取るのはこうするらしい(setterも同じようにあるよ) | |
// getFullYear / getMonth / getDate / getDay | |
// getHours / getMinutes / getSeconds / getMilliseconds | |
/** ========== Math ========== **/ | |
Math.abs(val); // 絶対値 | |
Math.round(val); // 四捨五入 | |
Math.ceil(val); // 切り上げ | |
Math.floor(val); // 切り捨て | |
Math.max(val1, val2); // 最大値を返す.可変長引数.minもあり | |
Math.random(); // ランダムな値を返す | |
Math.sin(rad); // sin,cos,tan,asin,acos,atan(ラジアン) | |
Math.sqrt(val); // 平方根 | |
Math.pow(x, n); // xのn乗 | |
Math.log(val); // log e valを返す | |
Math.exp(val); // eのval乗 | |
/** ========== String ========== **/ | |
s.length(); // 文字列長(全角半角関係なし) | |
s.concat(val1, val2); // 可変長引数。つなげた文字列を返す | |
s.slice(0, 1); // スライサー(substring, substrも一緒?) | |
s.charAt(0); // 指定された番号の文字 | |
s.charCodeAt(0); // 指定された番号の文字コードを返す | |
String.fromCharCode(12497, 12477); // 可変長引数。文字コードから文字列生成 | |
s.toLowerCase(); // すべて小文字(toUpperCaseもあるよ) | |
s.indexOf("文字列",n); // n番目以降で指定された文字列が存在する番号を返す.lastindexもあるよ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
クラス変数を使わないなら直感的にかけるけど、それより先はコンストラクタ関数を使った書き方になっちゃう