第2回JavaScript勉強会

今回大切なこと

  • コンテキストとは何か?
    • context="文脈"
    • ソースの中の式が、どの型なのかを、javascriptインタープリタが、判断すること
    • ようするにインタープリタが空気を読んで、型変換(3-12表参照)してくれるってこと
    • if(a){....}
      • aは、booleanだろ、常考
      • aを型変換
      • たとえば、aが2だと、trueに変換される
    • "2"*"3"
      • "*"の演算は、数値だろ、常考
      • "2"*"3" → 6

3-6-2 配列リテラル

  • [1,2,3,4]みたいにして、配列は作れます。
  • [1.2,"aaa",{x:2,y:5}]みたいに、配列には何でも入れられます。
  • [ [1,2],[3.4],[5,6] ]みたいに、配列を入れ子にもできます
  • [1,,2,,3]みたいに値を省略すると、省略されたところは、undefinedになります
  • [1,,,]みたいに、配列リテラルの最後まで、","で終わらせることはできません
    • firebugsでは、できたよ。

3-7 null値

  • オブジェクト型
    • typeof null -> "object"
  • コンテキスト
    • 論理値→false
    • 数値コンテキスト→0
    • 文字列コンテキスト→"null"
  • 明確に値が"ない”というときに使う
    • var a=nullみたいに
    • var a;だけだと、aはundefined

3-8 undefined

  • コンパイラ型言語にはない。
    • コンパイラ言語では、最初に型を定義するから、nullはあるがundefinedはないから?
  • 初期化しないで宣言しただけの変数は、undefined
  • コンテキスト関連
    • null==undefined → true
    • nullと見分けるには、"==="をつかうかtypeofを活用する
    • function f(a,b){...}みたいな関数を定義して、f(2)と実行すると
    • bは"undefined"
    • 関数内にb= b || "string"とかいて、"undefined"のときのデフォルト値を入れておける。

3-9 Dateオブジェクト

  • new Date()で現在の日付
  • new Date(2008,0,17)で2008年"1"月17日

3-10 正規表現

  • RegExpオブジェクト
  • /^html/みたいに、"/"をつかって、定義することもできる
  • //は、コメント文になってしまうので、JavaScriptでは使えない

3-11 Errorオブジェクト

  • try{...}catch(e){...}finally{...}あたりで、throwするためのオブジェクト
  • messageプロパティで、エラーの中身
  • stackTraceプロパティもあるらしい
  • 詳しくは、リファレンスを見る

3-12 型変換のまとめ

  • ここの表は、壁に張っておくぐらいの気持ちで。