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

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

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

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

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

買ったけど積ん読だったパーフェクトJavascriptを読み始めた。
実のところ、昔Javascriptに関する本を買って読んでは見たものの、それほど使う機会もなく本格的に覚えるところまではいかないままに今日まで暮らしてきたわけで。

しかし、実際のところJavascriptがわからないとやばい場面というのが増えてきたので、もう一度基礎からやり直そうと思って本を買ったけれど読む時間を作れず、今日に至っていた、と。

半ニートの状態が続いているので、もういい加減次の仕事をやらなくちゃいけないんだけど、時間があるんだからちょっと勉強してみます。

元々の知識が中途半端に知っている上にJavascriptがいたずらに使われてて止めてた方がいいんじゃないかと言われていた時代にしか見ていないので、いろいろ目から鱗。
読んでて「へー」って思ったところをメモって読んでるところ。

  • 関数宣言にはvarが必要
  • 関数リテラルは関数オブジェクトの参照
    • どちらも関数オブジェクトが関数の実体を返す
  • オブジェクトは連想配列/構造体のようにアクセスできる
    • プロパティ名=キー
    • オブジェクトはデータにどんな型でも持てる
  • オブジェクトのプロパティへのアクセス
    • obj.key / obj['key'] のどちらでもアクセスできる
  • オブジェクトのプロパティには関数も持てるのでクラスとメソッドのように利用できる
    • obj.func(p1,p2)のような形で書ける
  • var v=new func()で呼び出すと、funcオブジェクトのコンストラクタのように使える
  • prototypeプロパティは、親クラスのメソッドを継承するような動き
  • undefined型、null型がある
    • 文字列型→不変型(参照や継承しない)
  • ===は「型変換なし比較」、==は「型変換あり比較」
  • 比較順は
    • 数字→一部を除く記号→英大文字→英小文字→一部記号→ひらがな→カタカナ→漢字
    • 英大小文字はアルファベット順
    • ひらがな、カタカナは50音順
    • 漢字は機種依存
    • 人間向きの比較ではなく、アルファベット、数値、記号くらいしか比較に使えない

とりあえず、最後まで読んだら、また頭から読み直そう。