Java no memo

自分のためのJavaメモ。

javascript memo

falseと解釈される値 false 0, -0 NaN '' null undefined 変数 var hensu, str = "文字", i = 0; - ローカル変数 - グローバル変数 配列 var pref = []; var pref = ["Tokyo","Osaka","Nagoya"]; var pref = [{cd:"01",name:"Tokyo"}, {cd:"02",name:"Osaka"}, {cd:"03",name:"Nagoya"}]; console.log( pref.length ); // 3 for(var key in pref){ console.log(pref[key].cd + ":" + pref[key].name); } オブジェクト var obj = {}; var obj = { cd:"01", //key:value name:"Tokyo"}; obj["cd"] = "01"; //非推奨 obj.cd = "01";   //推奨 obj.fn = function(){
/メソッド/ }; delete obj.prop; //非推奨 - 変数はActivationオブジェクトのプロパティ。 - 関数はFunctionオブジェクト。 - グローバルオブジェクトはwindowオブジェクト。 - arguments オブジェクト。 スコープ スコープは2つ。 - グローバルスコープ。 - ローカルスコープ。 スコープはなるべく狭い方がよい。 型 - プリミティブ型 number、string、booleanはそれぞれNumber、String、Booleanというオブジェクト型(ラッパーオブジェクト)。 Activation Object(Callオブジェクト、変数オブジェクト) - 関数が実行時に生成される。(宣言時ではない) - スコープチェーンの先頭にセット。 activationObject = { arguments: { / 省略 / }, x: 1, y: 2, localFn: function localFn() { return 'I am a local function.'; }, localVar: undefined }; スコープチェーン - 変数を探していく仕組み。   関数 関数は3パターン。 - 関数宣言(function文)。 - 関数式(function演算子)。 - Functionコンストラクタ 関数は全て、実際には Function オブジェクト。   名前つき関数 - 再利用しないなら無名関数を使う方がよい。 - 同じ関数名をつけられる。 - 同じ関数名の場合、一番最後の関数で上書きされる。 function fnc(){console.log("1");}fnc();// 3 function fnc(){console.log("2");}fnc();// 3 function fnc(){console.log("3");}fnc();// 3 どこで呼んでも最後の関数が呼ばれる。実行前に解釈されているため。 即時関数(無名関数) - スコープを汚さないために使う。 - プライベートにするために使う。 - クロージャーで使う。 - 引数も使える。 - 結果も返せる。 (function(){ }()); (function(){ })(); (function(p1,p2){ }(p1,p2)); var result = (function(p1,p2){ return p1+p2; }(p1,p2)); コンストラクタ - JavaScriptにクラスはない。 - コンストラクタからインスタンスを作る。 function Dog(name,bark){ this.name = name; //プロパティ this.bark = function(){ //メソッド console.log(bark); }; } var myDog = new Dog('poch','wowow'); console.log(myDog.name); mydog.bark; new演算子で呼ぶ場合、myDogの中にはDog関数のthis(オブジェクト)が入っている。 Functionコンストラクタ var add = new Function("x","y","return x + y"); console.log(add(1,2)); -末尾の引数が関数の本体。 -本体部分を文字列で指定。 -呼出の度、新たな関数オブジェクトを生成(実行速度低下)。