メッセージ欄

2009年10月の日記

一覧で表示する

JavaScript 第5版 - 7章 オブジェクトと配列
2009/10/27(火) 19:27 Javascriptはてブ情報 はてブに登録 はてブ数

7.1 オブジェクトの生成

var obj = ;
と
var obj = new Object();
は同じ意味で空のオブジェクトを生成する。

7.2.2 プロパティの存在確認

オブジェクトのプロパティの存在を確認するには for inを使って行う事ができる。
o.xというプロパティが未定義でない場合という条件を見分けるために!==演算子を指定してる。
!==演算子ではnullとundefinedが見分けることができる。
var obj = { a : 1 , b:2 , c:3 ,x:0};
if("a" in obj) console.log(obj.a); // 1
if(obj.x !== undefined) obj.x = 3;// !==で比較している
console.log(obj.x);

連想配列としてのオブジェクト

objのプロパティにアクセスするにはobj.xとする方法と、
obj["x"]と連想配列の形式を取ってアクセスする方法がある。
javascriptでは型がゆるいのでこのように[]演算子を使ってアクセスすることも可能になっている。
これを使うとより柔軟なプロパティのアクセスができる。
var obj = {};
obj.map1 = 1;
obj.map2 = 2;
obj.map3 = 3;
for(var i=1;i<=3;i++){
    console.log(obj["map" + i]);
}
// map1-3までアクセスする

Objectのプロパティとメソッド

constructorプロパティ

初期化に使われたコンストラクタの関数を参照できる
var o = new Object();
console.log(o.constructor);// object()
var d = new Date();
console.log(d.constructor);//Date()

7.4.5 hasOwnProperty()メソッド

引数で指定したプロパティを持っているかの真偽値を返してくれる。
継承したプロパティの場合はfalseを返す
下の例ではtoString()は継承したプロパティであることが分かる。
 var o = new Object();
o.mess = "プロパティ";
o.hasOwnProperty("toString");// false
o.hasOwnProperty("mess");// true

7.5配列の要素追加

Arrayコンストラクタで数字を指定すると、その個数分の要素を持つ配列を生成する。
先に配列の大きさが決まっている場合はこちらを使う。
var ary = new Array(10);
console.log(ary.length);//10

Javascript 第5版 第6章
2009/10/21(水) 22:27 Javascriptはてブ情報 はてブに登録 はてブ数



JavaScript 第5版の「6章 文」、「6.1 式文」~「6.15 return文」(81~98ページ)


JavaScript 第5版 - 6章 文(1) - (DxD)∞


6.2 複合文

{}*1で囲まれた部分は文ブロックという。
文ブロックは一つの文と同じ働きするが、文ブロック末には;は必要ない。
{
	var x = "bun";
	var y = "nomiss";
}// ;はいらない

*1 : 中括弧

6.8 for文

initirize;は一度だけ評価される。
initirize;
while(test){
	statement;
	increase;
}
と
for(initirize; test; increase;){
	statement;
}
対応している。

6.15 return文

return文は値を指定しないで使ったとき、値は返さず(つまり未定義)関数の実行を中断します。
function main(){
	var x;
	x = 10;
	return;関数の実行を中止
}


JavaScript 第5版の「6章 文」、「6.16 throw文」~「6.20 JavaScript文のまとめ」(98~103ページ)


JavaScript 第5版 - 6章 文(2) - (DxD)∞


6.17 try/catch/finally文

  • catch句とfinally句はそれぞれ省略可能だが、両方を省略することはできない。
finally文は例外があってもなくても実行される。
  • 例外発生のタイミング
例外発生のタイミングはfinally文が実行した後に起きるため、関数内のfinally文でreturnなどをすると例外を無視して関数を中止できる。
errorが発生するのはalert後になる。
try{
    var hoge = "foo";
    throw new Error("ero");
}finally{
    hoge = "bar";
    alert(hoge);
}

6.19 空文

空分とは
;
というような何にも実行されない;だけの文ですが、これが意味を持つのはforループで省略した形を書くときに気をつける必要がある。
var ary=["mi" ,"vi" ,"ei"];
var cAry = [];
var i;
for(cAry[i++] in ary) ; //;の前にスペースが必要
console.log(cAry);// cAryにaryの配列をコピー
//どうせやるなら
var ary=["mi" ,"vi" ,"ei"];
var cAry = [];
var i;
for(cAry[i++] in ary) /*空文*/ ; //空白を明示的に
console.log(cAry);// cAryにaryの配列をコピー
for(cAry[i++] in ary);
みたいに)と;がくっついてるとエラーになる。

Javascript 第5版 メモまとめ
2009/10/21(水) 22:22 Javascriptはてブ情報 はてブに登録 はてブ数

JavaScript 第5版JavaScript 第5版
David Flanagan,村上 列

オライリー・ジャパン
売り上げランキング : 4393
おすすめ平均 : 5つ星のうち4.5

Amazonで詳しく見る by AZlink

Amazon.co.jp: JavaScript 第5版: David Flanagan, 村上 列: 本
を読んで、分かったことや考えたことをメモっていく。

マイコミジャーナルのコラム
2009/10/07(水) 17:07 Javascriptはてブ情報 はてブに登録 はてブ数

そろそろきっちりJavaScript | コラム | エンタープライズ | マイコミジャーナル
http://journal.mycom.co.jp/column/js/index.html

を読んでいく。

これも読んどく
「そろそろきっちりJavaScript」がきっちりしていない点 (Kanasansoft Web Lab.)

javascriptのオブジェクト指向とかプロトタイプとか - (゚∀゚)o彡 sasata299's blog
var Mammal = function() {};
Mammal.prototype = { 
 'name':'noname',
 'bark':function() { alert('hogehoge'); }
};
var Dog = function() {};
Dog.prototype = new Mammal();
alert("Dog.name: " + Dog.name);
var d = new Dog();
alert("d.name: " + d.name);
Dog.prototype.bark = function() { alert('ばうわう'); };
d.bark();
var Dachshund = function() { this.name='サラ'; };
Dachshund.prototype = new Dog();
alert("Dachshund.name: " +Dachshund.name);
var dh = new Dachshund();
alert("dh.name: " + dh.name);
Enumerableオブジェクトは大きく仕様が変更されている
第二引数が使えるようになってる。

JS1.6からはforeachが実装されている。
forEach - MDC

あんまり関係はないけど
Enumerable.js - c4se記

Prototype.js
2009/10/07(水) 16:47 Javascriptはてブ情報 はてブに登録 はてブ数

Prototype.jsについて書いていく。
Prototype.js

記事リスト