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

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

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

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

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

というわけで、3日目。

  • 変数に変数を代入すると新たな変数になる
  • オブジェクトを代入するとオブジェクト参照になる
    • ただし、あらためて代入すればオブジェクトがコピーされる
    • いまいち表現がわかりづらい。あとでもう一度確認する。
  • 変数とプロパティ、呼び名は違えど実際は同じものを指す
  • 'a' in thisで現在のオブジェクト内にaというプロパティが存在するか調べられる
  • 存在しないプロパティにアクセスしてもundefined
    • でも、undefinedなプロパティにアクセスしたらTypeofエラーが出る
    • 存在チェックをしたいときはinを使う
  • オブジェクトリテラル
    • 関数の引数にオブジェクトを指定できる
    • 関数の返り値にオブジェクトを指定できる
  • コンストラクタ
    • コンストラクタ関数の最後にreturnを書くと生成されたオブジェクトは破棄されて違うものが返る
    • どうせなら、潔くreturnなど書かずに終わるほうがいい
  • []でしか書けない方法がある
    • オブジェクトのプロパティへのアクセスは.と[]がある
    • …が、[]でしかアクセスできない場合も存在する
      • 変数の値
      • 式の評価結果
      • プロパティ名に-や数字が含まれる
      • 当然のことながら、数字で始まるとか-などの記号で始まるプロパティ名を作るのはちょっと…。
  • deleteはプロパティ内の要素を削除する
  • '要素' in オブジェクトで要素を含んでいるか調べる
    • 安全を取るならば、hasOwnPropertyを使え