第2回JavaScriptサイ本読書会 070108

JavaScript 第5版

JavaScript 第5版

会社で、週に1回JavaScriptサイ本の読書会を行うことになった。
適度に刺激を受けることができて、うれしいです。
時間も短いこともあって、3章の途中まででおわり。

1章

2章

  • 文の終わりには、";"を使いましょう


return
true;
return true;で、trueがかえってほしい、returnで何も返さなくなってしまう。

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;})
      • 宣言前でも使える


alert(square(2)) -> 4
function square(x){return x*x}

    • 関数リテラル(例:var square = function(x){return x*x;})
      • 宣言前だったら、squareはundefined


alert(func(3)) -> 変数は定義されているけど、関数は定義されていないのでエラー
var func = function(x){return x*x;}
alert(func(9)) -> 81

    • Functionコンストラクタ(例:new Function("x","return x*x;"))
      • これ使うことある?
  • オブジェクト
    • image.widthとimage["width"]
      • 後者は動的にいじくれる
    • 型変換
      • 論理値コンテキスト
        • nullでない限りtrue
        • Booleanのfalseでも


var o = new Boolean(false);
if(o){
alert("false")
}
-> falseが表示される!!

      • 文字列コンテキスト
        • toString()をよびだす
      • 数値コンテキスト
        • 最初にvalueOf()
          • 基本型を返すと、基本型に従う
          • たいがい、オブジェクトを返す
            • toString()で文字列に
            • 文字列を数値に
  • 配列
    • 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]