むずかしいことはわかりません

いろいろ書いてるみたいな

パーフェクト Javascript を読み始めた。 - 7

パーフェクトJavaScript (PERFECT SERIES 4)

パーフェクトJavaScript (PERFECT SERIES 4)

今日は一気に5章を最後まで読んだ。

  • 配列
    • 配列の長さは可変→オブジェクトを引き継いでいるので順次要素が生成されていく
    • 長さが0の配列を用意して、そこに要素を追加していく形
    • 要素自体の型は自由。ただし、要素自体の型変換が起こることもあり、それがバグの元になることもある
  • ECMAScriptには、forEachメソッドのようにインナーループ系のメソッドがある
    • インナーループ→ループ文が隠れる
    • arr.forEach(function(e) { callback(e); }
    • arr.forEach(function(e,thisが指すobj) { callback(e,this); }
  • 多次元配列
    • 自分自身を要素にできる
  • 配列オブジェクトのコンストラクタは数と型によって意味が変わる
    • 安全のためにはリテラルを使った方がいい
    • 大規模な配列を確保する必要がある場合はコンストラクタの方が見通しがいい
  • オブジェクトリテラルでは配列オブジェクトは作れない
  • 配列のソートはアルファベット順でソートされる
    • 一桁目が使われる
  • concatとslice
    • 配列のコピーにも利用できる
    • 本来は連結と切り取り
    • shallowコピー:プロパティや要素値のコピー→deepコピー(何から何までコピー)は自分で実装する必要がある
  • deleteで要素を削除できる
    • 歯抜けになるので、できるだけspliceで削除して間を詰めた方がいい
  • フィルタ処理
    • map関数などでフィルタ関数を指定できる
  • ジェネレータ
    • yieldを使う→オブジェクト内の関数はnextを呼び出すまで全体の実行をしない
  • JSON
    • リテラル表記をベースとしたデータフォーマット
    • 4つの基本型→文字列・数値・boolean・null
    • 2つの構造化型→オブジェクト・配列
    • JSON文字列←→オブジェクトの相互変換を行える
  • JSONのparse
    • 以前はevalを使っていた→リテラル宣言のはずなので
    • 現在はJSONオブジェクトが存在するので、安全に簡単に変換できる
  • 日付
  • 正規表現
    • パターン→探したい規則
    • 入力シーケンス→対象文字列
    • マッチ→一致した文字列
  • RegExpクラス
  • プロパティ
    • ignoreCase→大小文字の区別なし?
  • 正規表現を引数にとるStringオブジェクトのメソッド
    • match→PHPでいうところのpreg_match
    • replace→〃 preg_replace
    • search→preg_match_all?
    • split→〃 preg_split