第2回JavaScriptサイ本読書会 070108
- 作者: David Flanagan,村上列
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/08/14
- メディア: 大型本
- 購入: 52人 クリック: 1,011回
- この商品を含むブログ (271件) を見る
会社で、週に1回JavaScriptサイ本の読書会を行うことになった。
適度に刺激を受けることができて、うれしいです。
時間も短いこともあって、3章の途中まででおわり。
1章
- EcmaScript準拠
- Javaとは違うのだよ。Javaとは
2章
- 文の終わりには、";"を使いましょう
return true;で、trueがかえってほしい、returnで何も返さなくなってしまう。
return
true;
deleteとか、privateとか、まちがって変数に使わないように
3章
- 文字列
- オブジェクトでない
- "hello".lengthはだめ
オブジェクトで無いので、プロパティは無いはず。
だけど、よい。
内部で型変換をおこなうから。
"hello".length
-> 5
- 数値
- 全て浮動小数点
- 計算で手計算と異なることがある
- 1+1=2になるのは、実装で内部的にサポートしているから。かならずしも2になるとは限らない
- 平均計算とか注意
- 8進数表記に注意
- 010は、8になります。
var a = 012;
alert(a)
-> 10
-
-
- 会員IDとか注意
- parseIntの活用
-
var n = "012"
parseInt(n) -> 10
- 関数
- 関数定義(例:function square(x){return x*x;})
- 宣言前でも使える
- 関数定義(例:function square(x){return x*x;})
alert(square(2)) -> 4
function square(x){return x*x}
-
- 関数リテラル(例:var square = function(x){return x*x;})
- 宣言前だったら、squareはundefined
- 関数リテラル(例:var square = function(x){return x*x;})
alert(func(3)) -> 変数は定義されているけど、関数は定義されていないのでエラー
var func = function(x){return x*x;}
alert(func(9)) -> 81
-
- Functionコンストラクタ(例:new Function("x","return x*x;"))
- これ使うことある?
- Functionコンストラクタ(例:new Function("x","return x*x;"))
- オブジェクト
- image.widthとimage["width"]
- 後者は動的にいじくれる
- 型変換
- 論理値コンテキスト
- nullでない限りtrue
- Booleanのfalseでも
- 論理値コンテキスト
- image.widthとimage["width"]
var o = new Boolean(false);
if(o){
alert("false")
}
-> falseが表示される!!
-
-
- 文字列コンテキスト
- toString()をよびだす
- 数値コンテキスト
- 最初にvalueOf()
- 基本型を返すと、基本型に従う
- たいがい、オブジェクトを返す
- toString()で文字列に
- 文字列を数値に
- 最初にvalueOf()
- 文字列コンテキスト
-
- 配列
- new Arrayより、[]で初期化しよう
- new Array()の引数が間違いやすい
- 1個:要素数
- 2個以上:配列要素の指定
var a = new Array(1,2,3)
a -> [1,2,3]
var b = new Array(3)
×b -> [3]と思ってしまう
○b -> [undefined,undefined,undefined]
-
-
- []でいいじゃん。
-
var a = [1,2,3]
a -> [1,2,3]
var b = [3]
b -> [3]